Class: Netfira::WebConnect::Models::Shop::Settings

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/netfira/web_connect/models/support/shop/settings.rb

Instance Method Summary collapse

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_hObject



26
27
28
# File 'lib/netfira/web_connect/models/support/shop/settings.rb', line 26

def to_h
  @hash.deep_dup
end