Class: Justdi::DefinitionStore
- Inherits:
-
Object
- Object
- Justdi::DefinitionStore
- Defined in:
- lib/justdi/definition_store.rb
Overview
Store of entities definitions
Class Attribute Summary collapse
-
.general_store ⇒ Class<Hash>
readonly
Class for stores generation.
-
.register_handler ⇒ Class<Justdi::RegisterHandler>
readonly
Class for register handlers generation.
Instance Method Summary collapse
-
#[](token) ⇒ *
Short getting syntax.
-
#[]=(token, definition) ⇒ Object
Short definition syntax.
-
#all ⇒ Hash
Return all definitions.
-
#each {|token, definition| ... } ⇒ Object
Iterates over existing values.
-
#empty? ⇒ Boolean
Store is empty.
-
#get(token) ⇒ *
Load dependency.
-
#has?(token) ⇒ Boolean
Check existence of dependency.
-
#merge(def_store) ⇒ Object
Merge definition stores.
-
#register(token) ⇒ Justdi::RegisterHandler
Register definition declaration.
-
#set(token, **definition) ⇒ Object
Register any dependency declaration manually.
Class Attribute Details
.general_store ⇒ Class<Hash>
Class for stores generation
9 10 11 |
# File 'lib/justdi/definition_store.rb', line 9 def general_store @general_store ||= Hash end |
.register_handler ⇒ Class<Justdi::RegisterHandler>
Class for register handlers generation
15 16 17 |
# File 'lib/justdi/definition_store.rb', line 15 def register_handler @register_handler ||= Justdi::RegisterHandler end |
Instance Method Details
#[](token) ⇒ *
Short getting syntax
78 79 80 |
# File 'lib/justdi/definition_store.rb', line 78 def [](token) get(token) end |
#[]=(token, definition) ⇒ Object
Short definition syntax
51 52 53 |
# File 'lib/justdi/definition_store.rb', line 51 def []=(token, definition) set(token, **definition) end |
#all ⇒ Hash
Return all definitions
91 92 93 |
# File 'lib/justdi/definition_store.rb', line 91 def all store.clone.freeze end |
#each {|token, definition| ... } ⇒ Object
Iterates over existing values
98 99 100 |
# File 'lib/justdi/definition_store.rb', line 98 def each store.each { |(key, value)| yield key, value } end |
#empty? ⇒ Boolean
Store is empty
63 64 65 |
# File 'lib/justdi/definition_store.rb', line 63 def empty? store.empty? end |
#get(token) ⇒ *
Load dependency
71 72 73 |
# File 'lib/justdi/definition_store.rb', line 71 def get(token) store[token] end |
#has?(token) ⇒ Boolean
Check existence of dependency
57 58 59 |
# File 'lib/justdi/definition_store.rb', line 57 def has?(token) store.key? token end |
#merge(def_store) ⇒ Object
Merge definition stores
85 86 87 |
# File 'lib/justdi/definition_store.rb', line 85 def merge(def_store) @store = store.merge def_store.all end |
#register(token) ⇒ Justdi::RegisterHandler
Register definition declaration
34 35 36 |
# File 'lib/justdi/definition_store.rb', line 34 def register(token) self.class.register_handler.new { |value| store[token] = value } end |
#set(token, **definition) ⇒ Object
Register any dependency declaration manually
44 45 46 |
# File 'lib/justdi/definition_store.rb', line 44 def set(token, **definition) store[token] = Justdi::Definition.new(**definition) end |