Class: Settings

Inherits:
Object
  • Object
show all
Defined in:
app/models/settings.rb

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ Settings

Returns a new instance of Settings.



3
4
5
6
7
# File 'app/models/settings.rb', line 3

def initialize(attributes={})
  attributes.each do |key, value|
    self[key] = value
  end
end

Instance Method Details

#[](name) ⇒ Object



9
10
11
# File 'app/models/settings.rb', line 9

def [](name)
  fetch(name, nil)
end

#[]=(name, value) ⇒ Object



20
21
22
23
24
# File 'app/models/settings.rb', line 20

def []=(name, value)
  setting = settings.find { |setting| setting.name == name }
  settings << (setting = Setting.new(name: name)) unless setting
  setting.value = value
end

#fetch(name, *args) ⇒ Object

Raises:

  • (KeyError)


13
14
15
16
17
18
# File 'app/models/settings.rb', line 13

def fetch(name, *args)
  setting = settings.find { |setting| setting.name == name }
  return setting.value if setting
  raise KeyError, "key not found: #{name.inspect}" if args.empty?
  args.first
end

#save!Object



26
27
28
29
30
# File 'app/models/settings.rb', line 26

def save!
  settings.each do |setting|
    setting.save if setting.changed?
  end
end