Class: Yoda::Store::Registry::Index
- Inherits:
-
Object
- Object
- Yoda::Store::Registry::Index
- Defined in:
- lib/yoda/store/registry/index.rb
Defined Under Namespace
Classes: ComposerWrapper
Instance Attribute Summary collapse
- #content ⇒ Hash readonly
- #registry_ids ⇒ Set readonly
Instance Method Summary collapse
- #add(address, registry_id) ⇒ Object
- #add_registry(registry) ⇒ Object
- #get(address) ⇒ Set<Symbol>
-
#initialize(content: {}, registry_ids: Set.new) ⇒ Index
constructor
A new instance of Index.
- #keys ⇒ Object
- #remove(address, registry_id) ⇒ Object
- #remove_registry(registry) ⇒ Object
- #wrap(composer) ⇒ Object
Constructor Details
#initialize(content: {}, registry_ids: Set.new) ⇒ Index
Returns a new instance of Index.
72 73 74 75 |
# File 'lib/yoda/store/registry/index.rb', line 72 def initialize(content: {}, registry_ids: Set.new) @content = content @registry_ids = Set.new(registry_ids) end |
Instance Attribute Details
#content ⇒ Hash (readonly)
67 68 69 |
# File 'lib/yoda/store/registry/index.rb', line 67 def content @content end |
#registry_ids ⇒ Set (readonly)
70 71 72 |
# File 'lib/yoda/store/registry/index.rb', line 70 def registry_ids @registry_ids end |
Instance Method Details
#add(address, registry_id) ⇒ Object
85 86 87 88 89 |
# File 'lib/yoda/store/registry/index.rb', line 85 def add(address, registry_id) content[address.to_sym] ||= Objects::SerializableSet.new content[address.to_sym].add(registry_id) content[address.to_sym].select! { |id| registry_ids.member?(id) } end |
#add_registry(registry) ⇒ Object
102 103 104 105 |
# File 'lib/yoda/store/registry/index.rb', line 102 def add_registry(registry) registry_ids.add(registry.id) registry.keys.each { |key| add(key, registry.id) } end |
#get(address) ⇒ Set<Symbol>
79 80 81 |
# File 'lib/yoda/store/registry/index.rb', line 79 def get(address) content[address.to_sym] ||= Objects::SerializableSet.new end |
#keys ⇒ Object
98 99 100 |
# File 'lib/yoda/store/registry/index.rb', line 98 def keys Set.new(content.keys) end |
#remove(address, registry_id) ⇒ Object
93 94 95 96 |
# File 'lib/yoda/store/registry/index.rb', line 93 def remove(address, registry_id) content[address.to_sym] ||= Objects::SerializableSet.new content[address.to_sym].delete(registry_id) end |
#remove_registry(registry) ⇒ Object
107 108 109 |
# File 'lib/yoda/store/registry/index.rb', line 107 def remove_registry(registry) registry_ids.delete(registry.id) end |
#wrap(composer) ⇒ Object
111 112 113 |
# File 'lib/yoda/store/registry/index.rb', line 111 def wrap(composer) ComposerWrapper.new(composer: composer, index: self) end |