Sha256: f46c7f7d7528ae7d1e9944955154b98c9255943355ade64eb32082a6bc352fd7
Contents?: true
Size: 728 Bytes
Versions: 23
Compression:
Stored size: 728 Bytes
Contents
class Settings def initialize(attributes={}) attributes.each do |key, value| self[key] = value end end def [](name) fetch(name, nil) end 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 def []=(name, value) setting = settings.find { |setting| setting.name == name } settings << (setting = Setting.new(name: name)) unless setting setting.value = value end def save! settings.each do |setting| setting.save if setting.changed? end end private def settings @settings ||= Setting.all end end
Version data entries
23 entries across 23 versions & 1 rubygems