class ActiverecordSettings::Setting

Public Class Methods

destroy(key) click to toggle source
# File lib/activerecord_settings.rb, line 38
def self.destroy(key)
  find_by_key(key).try(:destroy)
end
get(key) click to toggle source
# 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) click to toggle source
# 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(setting)
  else
    create({ key: key }.merge(setting))
  end
end