mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-10-29 18:28:28 -04:00
41 lines
750 B
Ruby
41 lines
750 B
Ruby
# frozen_string_literal: true
|
|
|
|
# The features admins can switch on and off, kept in Flipper. Each is off until
|
|
# an admin switches it on.
|
|
class Feature
|
|
NAMES = %i(job_ideas enable_planting_reminders enable_harvest_reminders).freeze
|
|
|
|
attr_reader :name
|
|
|
|
def self.all
|
|
NAMES.map { |name| new(name) }
|
|
end
|
|
|
|
def self.find(name)
|
|
feature = NAMES.find { |known| known.to_s == name.to_s }
|
|
raise ActiveRecord::RecordNotFound unless feature
|
|
|
|
new(feature)
|
|
end
|
|
|
|
def self.enabled?(name)
|
|
Flipper.enabled?(name)
|
|
end
|
|
|
|
def initialize(name)
|
|
@name = name
|
|
end
|
|
|
|
def enabled?
|
|
Flipper.enabled?(name)
|
|
end
|
|
|
|
def enabled=(on)
|
|
on ? Flipper.enable(name) : Flipper.disable(name)
|
|
end
|
|
|
|
def to_param
|
|
name.to_s
|
|
end
|
|
end
|