Files
grecia/app/models/setting.rb
2019-03-26 16:45:48 +01:00

45 lines
908 B
Ruby

class Setting < ActiveRecord::Base
validates :key, presence: true, uniqueness: true
default_scope { order(id: :asc) }
def type
prefix = key.split(".").first
if %w[feature process proposals map html homepage].include? prefix
prefix
else
"configuration"
end
end
def enabled?
value.present?
end
class << self
def [](key)
where(key: key).pluck(:value).first.presence
end
def []=(key, value)
setting = where(key: key).first || new(key: key)
setting.value = value.presence
setting.save!
value
end
def rename_key(from:, to:)
if where(key: to).empty?
value = where(key: from).pluck(:value).first.presence
create!(key: to, value: value)
end
remove(from)
end
def remove(key)
setting = where(key: key).first
setting.destroy if setting.present?
end
end
end