Sha256: 2113c3fd9d6e4e1c3f2323204b5fdb9f39e996f9aa5f455a294984df9729c7da
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
module Ro class Root < Path def identifier self end def collections(&block) accum = Collection::List.for(self) subdirectories do |subdirectory| collection = collection_for(subdirectory) block ? block.call(collection) : accum.push(collection) end block ? self : accum end def collection_for(subdirectory) Collection.new(subdirectory) end def paths_for(name) [ subdirectory_for(name), subdirectory_for(Slug.for(name, :join => '-')), subdirectory_for(Slug.for(name, :join => '_')), ] end def get(name) name = name.to_s if name.index('/') collection_name, node_name = name.split('/', 2) collection = get(collection_name) if collection node = collection.get(node_name) return node else return nil end end paths_for(name).each do |path| next unless path.directory? return collection_for(path) end nil end def [](name) get(name) end def nodes(&block) accum = [] collections.each do |collection| collection.nodes do |node| block ? block.call(node) : accum.push(node) end end block ? self : accum end def method_missing(name, *args, **kws, &block) get(name) || super end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ro-4.2.0 | lib/ro/root.rb |