Class: Settings
- Inherits:
-
Object
- Object
- Settings
- Defined in:
- app/models/settings.rb
Instance Method Summary collapse
- #[](name) ⇒ Object
- #[]=(name, value) ⇒ Object
- #fetch(name, *args) ⇒ Object
-
#initialize(attributes = {}) ⇒ Settings
constructor
A new instance of Settings.
- #save! ⇒ Object
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
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 |