Class: SettingsCabinet::Settings
- Inherits:
-
Object
- Object
- SettingsCabinet::Settings
- Defined in:
- lib/settings_cabinet/settings.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #dig(*keys) ⇒ Object
- #fetch(key) ⇒ Object
- #fetch_values(*keys, &block) ⇒ Object
-
#initialize(hash) ⇒ Settings
constructor
A new instance of Settings.
- #to_h ⇒ Object
- #values_at(*keys) ⇒ Object
Constructor Details
#initialize(hash) ⇒ Settings
Returns a new instance of Settings.
27 28 29 30 31 |
# File 'lib/settings_cabinet/settings.rb', line 27 def initialize(hash) @values = hash.transform_values { |v| v.is_a?(::Hash) ? self.class.new(v) : v } define_accessors!(@values) end |
Instance Method Details
#[](key) ⇒ Object
33 34 35 |
# File 'lib/settings_cabinet/settings.rb', line 33 def [](key) @values[key.to_sym] end |
#dig(*keys) ⇒ Object
37 38 39 40 |
# File 'lib/settings_cabinet/settings.rb', line 37 def dig(*keys) keys[0] = keys[0].to_sym unless keys.empty? @values.dig(*keys) end |
#fetch(key) ⇒ Object
42 43 44 |
# File 'lib/settings_cabinet/settings.rb', line 42 def fetch(key, ...) @values.fetch(key.to_sym, ...) end |
#fetch_values(*keys, &block) ⇒ Object
46 47 48 |
# File 'lib/settings_cabinet/settings.rb', line 46 def fetch_values(*keys, &block) @values.fetch_values(*keys.map(&:to_sym), &block) end |
#to_h ⇒ Object
54 55 56 |
# File 'lib/settings_cabinet/settings.rb', line 54 def to_h @values.transform_values { |v| v.is_a?(self.class) ? v.to_h : v } end |
#values_at(*keys) ⇒ Object
50 51 52 |
# File 'lib/settings_cabinet/settings.rb', line 50 def values_at(*keys) @values.values_at(*keys.map(&:to_sym)) end |