Sha256: 4e99e33c12352d76b84efd466183d9a5d862fe7b3b5410fe7cab9cc565458060
Contents?: true
Size: 849 Bytes
Versions: 3
Compression:
Stored size: 849 Bytes
Contents
module Lookbook class EntityStore include Enumerable delegate :each, :clear, to: :@entities def initialize @entities = [] end def add(*entities) entities.each { @entities.push(_1) } end def replace(*entities) entities.each do |entity| i = index(entity) @entities[i] = entity unless i.nil? end end def remove(*entities) entities.each do |entity| i = index(entity) @entities.delete_at(i) unless i.nil? end end def replace_all(entities) clear add(*entities) end def include?(entity) !index(entity).nil? end def index(entity) @entities.index { _1.id == entity.id } end def all = @entities alias_method :to_a, :all def to_data @entities.map(&:to_h) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lookbook-3.0.0.alpha.2 | lib/lookbook/entity_store.rb |
lookbook-3.0.0.alpha.1 | lib/lookbook/entity_store.rb |
lookbook-3.0.0.alpha.0 | lib/lookbook/entity_store.rb |