Class: Accord::AdapterLookup
- Inherits:
-
BaseLookup
- Object
- BaseLookup
- Accord::AdapterLookup
- Defined in:
- lib/accord/adapter_registry.rb
Instance Attribute Summary
Attributes inherited from BaseLookup
Instance Method Summary collapse
Methods inherited from BaseLookup
#[], #[]=, #delete, #initialize, #partial
Constructor Details
This class inherits a constructor from Accord::BaseLookup
Instance Method Details
#all(required, provided) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/accord/adapter_registry.rb', line 14 def all(required, provided) extendor = extendors.get(provided) return {} unless extendor hashes = hash.select_expansions(required + [provided]) do |key| next key.ancestors.reverse if required.include?(key) extendor.current.reverse end hashes.inject({}) { |result, h| result.merge(h) } end |
#first(required, provided, name = '') ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/accord/adapter_registry.rb', line 6 def first(required, provided, name='') extendor = extendors.get(provided) return unless extendor return unless result = hash.detect_expansion(required) { |s| s.ancestors } available = extendor.compact_map { |i| result[i] } (available.detect { |h| h[name] } || {})[name] end |