Class: Netfira::WebConnect::Models::Shop::Settings
- Inherits:
-
Object
- Object
- Netfira::WebConnect::Models::Shop::Settings
- Extended by:
- Forwardable
- Defined in:
- lib/netfira/web_connect/models/support/shop/settings.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #delete(key) ⇒ Object
-
#initialize(proxy) ⇒ Settings
constructor
A new instance of Settings.
- #to_h ⇒ Object
Constructor Details
#initialize(proxy) ⇒ Settings
Returns a new instance of Settings.
8 9 10 11 12 |
# File 'lib/netfira/web_connect/models/support/shop/settings.rb', line 8 def initialize(proxy) @proxy = proxy @models = proxy.map{ |model| [model.key.to_sym, model] }.to_h @hash = @models.map{ |key, model| [key, model.typed_value]}.to_h end |
Instance Method Details
#[](key) ⇒ Object
14 15 16 |
# File 'lib/netfira/web_connect/models/support/shop/settings.rb', line 14 def [](key) @hash[key.to_sym] end |
#[]=(key, value) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/netfira/web_connect/models/support/shop/settings.rb', line 18 def []=(key, value) key = key.to_sym model = @models[key] ||= @proxy.new(key: key.to_s) model.typed_value = value model.save! @hash[key] = value end |
#delete(key) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/netfira/web_connect/models/support/shop/settings.rb', line 30 def delete(key) key = key.to_sym return false unless @models[key] @models[key].destroy! @models.delete key @hash.delete key true end |
#to_h ⇒ Object
26 27 28 |
# File 'lib/netfira/web_connect/models/support/shop/settings.rb', line 26 def to_h @hash.deep_dup end |