Class: ActiverecordSettings::Setting

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/activerecord_settings.rb

Class Method Summary collapse

Class Method Details

.destroy(key) ⇒ Object



38
39
40
# File 'lib/activerecord_settings.rb', line 38

def self.destroy(key)
  find_by_key(key).try(:destroy)
end

.get(key) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/activerecord_settings.rb', line 12

def self.get(key)
  setting = find_by_key(key)
  return nil unless setting

  if setting.expires && setting.expires < Time.now
    destroy(key)
    return nil
  end

  YAML.load(setting.value)
end

.set(key, value, expires: nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/activerecord_settings.rb', line 24

def self.set(key, value, expires: nil)
  destroy(key) if value.nil?

  setting = { value: YAML.dump(value), expires: expires }

  existing = find_by_key(key)

  if existing
    existing.update_attributes(setting)
  else
    create({ key: key }.merge(setting))
  end
end