class Moltrio::Config::AdapterChain
Attributes
adapters[R]
Public Class Methods
new(adapters)
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 7 def initialize(adapters) @adapters = Hamster.list(*adapters) end
Public Instance Methods
[](key)
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 19 def [](key) if adapter = adapter_for_key(key) adapter[key] end end
[]=(key, value)
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 25 def []=(key, value) first_adapter[key] = value end
available_namespaces()
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 37 def available_namespaces adapters.reduce(Hamster.set) { |set, adapter| set.merge(adapter.available_namespaces) } end
has_key?(key)
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 29 def has_key?(key) !!adapter_for_key(key) end
missing_namespace?()
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 33 def missing_namespace? adapters.any?(&:missing_namespace?) end
on_namespace(namespace)
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 11 def on_namespace(namespace) adapters_on_namespace = adapters.map { |adapter| adapter.on_namespace(namespace) } self.class.new(adapters_on_namespace) end
Private Instance Methods
adapter_for_key(key)
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 46 def adapter_for_key(key) adapters.detect { |adapter| adapter.has_key?(key) } end
first_adapter()
click to toggle source
# File lib/moltrio/config/adapter_chain.rb, line 50 def first_adapter @adapters.first end