Class: Yoda::Store::Registry::Index

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/store/registry/index.rb

Defined Under Namespace

Classes: ComposerWrapper

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#contentHash (readonly)

Returns:

  • (Hash)


67
68
69
# File 'lib/yoda/store/registry/index.rb', line 67

def content
  @content
end

#registry_idsSet (readonly)

Returns:

  • (Set)


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

Parameters:

  • address (String, Symbol)
  • registry_id (String, Symbol)


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>

Parameters:

  • address (String, Symbol)

Returns:

  • (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

#keysObject



98
99
100
# File 'lib/yoda/store/registry/index.rb', line 98

def keys
  Set.new(content.keys)
end

#remove(address, registry_id) ⇒ Object

Parameters:

  • address (String, Symbol)
  • registry_id (String, Symbol)


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