Sha256: 2bd58844313c2906c8c5f786d672ef0eb93217c5287fd0de6854edc73e0ccf8e

Contents?: true

Size: 740 Bytes

Versions: 19

Compression:

Stored size: 740 Bytes

Contents

Theme = require './_theme'

module.exports = class Theme.TreeBuilder

  @build: (collection, resolver) ->
    (new @ collection, resolver).tree

  constructor: (@collection, @resolver) ->
    @tree = []

    for entry in @collection
      do (entry) =>
        storage      = @tree
        [name, path] = @resolver(entry)

        for segment in path when segment.length > 0
          storage = @situate(storage, segment)

        @situate(storage, name, entry)


  situate: (storage, name, entity) ->
    for entry in storage
      if entry.name == name
        entry.entity = entry.entity || entity
        return entry.children

    storage.push entry = 
      name:     name
      children: []
      entity:   entity

    entry.children

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ela-4.1.6 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.1.5 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.1.4 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.1.3 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.1.2 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.1.1 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.1.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-4.0.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.4.3 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.4.2 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.4.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.3.1 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.3.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.2.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.1.1 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.1.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-3.0.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-2.0.0 node_modules/codo/themes/default/lib/tree_builder.coffee
ela-1.1.0 node_modules/codo/themes/default/lib/tree_builder.coffee