Files
nairobi/app/models/setting.rb
Juan Salvador Pérez García 6e75f5b494 Fixes #140
Adds a new setting that allows defining what is considered a successful
proposal.
2018-07-17 17:59:11 +02:00

49 lines
1001 B
Ruby

class Setting < ActiveRecord::Base
validates :key, presence: true, uniqueness: true
default_scope { order(id: :asc) }
scope :banner_style, -> { where("key ilike ?", "banner-style.%")}
scope :banner_img, -> { where("key ilike ?", "banner-img.%")}
def type
return 'feature' if feature_flag?
return 'banner-style' if banner_style?
return 'banner-img' if banner_img?
return 'proposals' if proposals?
'common'
end
def feature_flag?
key.start_with?('feature.')
end
def enabled?
feature_flag? && value.present?
end
def banner_style?
key.start_with?('banner-style.')
end
def banner_img?
key.start_with?('banner-img.')
end
def proposals?
key.start_with?('proposals.')
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
end
end