class Lookbook::EntityCollection
def add(to_add = nil)
def add(to_add = nil) Array(to_add).each do |entity| unless find_by_path(entity.path) @entities.push(entity) end end clear_cache end
def clear_cache
def clear_cache @_cache = {} end
def each(&block)
def each(&block) if block entities.sort.each { |entity| yield entity } else to_enum(:each) end end
def find_by_id(id)
def find_by_id(id) id = Utils.id(id) entities.find { |entity| entity.id == id } end
def find_by_path(path)
def find_by_path(path) entities.find { |entity| entity.path.to_s == path.to_s } end
def flat_map(...)
def flat_map(...) entities.map(...).map(&:to_a).flatten end
def initialize(entities = nil)
def initialize(entities = nil) @_cache = {} @entities = [] add(entities) end
def next(entity)
def next(entity) index = entities.find_index { |i| i.path == entity.path } entities[index + 1] unless index.nil? end
def previous(entity)
def previous(entity) index = entities.find_index { |i| i.path == entity.path } entities[index - 1] if !index.nil? && index > 0 end