Class: Accord::BaseLookup
- Inherits:
-
Object
- Object
- Accord::BaseLookup
- Defined in:
- lib/accord/base_registry.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#extendors ⇒ Object
readonly
Returns the value of attribute extendors.
-
#hash ⇒ Object
readonly
Returns the value of attribute hash.
-
#order ⇒ Object
readonly
Returns the value of attribute order.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #delete(key) ⇒ Object
-
#initialize(order, extendors) ⇒ BaseLookup
constructor
A new instance of BaseLookup.
- #partial(required, provided) ⇒ Object
Constructor Details
#initialize(order, extendors) ⇒ BaseLookup
Returns a new instance of BaseLookup.
29 30 31 32 33 34 |
# File 'lib/accord/base_registry.rb', line 29 def initialize(order, extendors) @order = order @extendors = extendors @hash = NestedKeyHash.new super() end |
Instance Attribute Details
#extendors ⇒ Object (readonly)
Returns the value of attribute extendors.
27 28 29 |
# File 'lib/accord/base_registry.rb', line 27 def extendors @extendors end |
#hash ⇒ Object (readonly)
Returns the value of attribute hash.
27 28 29 |
# File 'lib/accord/base_registry.rb', line 27 def hash @hash end |
#order ⇒ Object (readonly)
Returns the value of attribute order.
27 28 29 |
# File 'lib/accord/base_registry.rb', line 27 def order @order end |
Instance Method Details
#[](key) ⇒ Object
36 37 38 39 |
# File 'lib/accord/base_registry.rb', line 36 def [](key) required, provided, name = key hash[required + [provided] + [name]] end |
#[]=(key, value) ⇒ Object
41 42 43 44 45 |
# File 'lib/accord/base_registry.rb', line 41 def []=(key, value) required, provided, name = key extendors.add(provided) hash[required + [provided] + [name]] = value end |
#delete(key) ⇒ Object
51 52 53 54 55 |
# File 'lib/accord/base_registry.rb', line 51 def delete(key) required, provided, name = key extendors.delete(provided) hash.delete(required + [provided] + [name]) end |
#partial(required, provided) ⇒ Object
47 48 49 |
# File 'lib/accord/base_registry.rb', line 47 def partial(required, provided) (hash[required + [provided]] || []).sort_by { |name, value| name } end |