class Moltrio::Config::Adapter
Public Instance Methods
[](key)
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 15 def [](key) raise NotImplementedError end
[]=(key, value)
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 19 def []=(key, value) raise NotImplementedError end
available_namespaces()
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 66 def available_namespaces [] end
fetch(key, default = Undefined) { || ... }
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 27 def fetch(key, default = Undefined) if has_key?(key) self[key] elsif default != Undefined default elsif block_given? yield else raise KeyError, key end end
fetch_all(*keys) { |key, hash| ... }
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 46 def fetch_all(*keys) hash = slice(*keys) missing_keys = keys - hash.keys if missing_keys.none? hash elsif block_given? missing_keys.each do |key| hash[key] = yield(key, hash) end else raise KeyError, missing_keys end end
has_key?(key)
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 23 def has_key?(key) raise NotImplementedError end
missing_namespace?()
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 61 def missing_namespace? raise NotImplementedError, "Please define whether #{self.class} requires a namespace" end
on_namespace(_)
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 7 def on_namespace(_) if missing_namespace? raise NotImplementedError, "Please override on_namespace for #{self.class}!" else self end end
slice(*keys)
click to toggle source
# File lib/moltrio/config/adapters/adapter.rb, line 39 def slice(*keys) keys .select { |key| has_key?(key) } .map { |key| [key, self[key]] } .to_h end