Class: Flipflop::Strategies::SequelStrategy
Instance Attribute Summary
#description, #key, #name, #title
Class Method Summary
collapse
Instance Method Summary
collapse
default_name, #hidden?, #reset!
Constructor Details
Returns a new instance of SequelStrategy.
20
21
22
23
24
25
26
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 20
def initialize(**options)
@class = options.delete(:class) || self.class.define_feature_class
if !@class.kind_of?(Class)
@class = ActiveSupport::Inflector.constantize(@class.to_s)
end
super(**options)
end
|
Class Method Details
.default_description ⇒ Object
5
6
7
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 5
def default_description
"Stores features in database. Applies to all users."
end
|
.define_feature_class ⇒ Object
9
10
11
12
13
14
15
16
17
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 9
def define_feature_class
return Flipflop::Feature if defined?(Flipflop::Feature)
model = Class.new(Sequel::Model(:flipflop_features))
model.plugin(:timestamps, force: true, update_on_create: true)
model.raise_on_save_failure = true
Flipflop.const_set(:Feature, model)
end
|
Instance Method Details
#clear!(feature) ⇒ Object
42
43
44
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 42
def clear!(feature)
find(feature).try(:destroy)
end
|
#enabled?(feature) ⇒ Boolean
32
33
34
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 32
def enabled?(feature)
find(feature).try(:enabled?)
end
|
#switch!(feature, enabled) ⇒ Object
36
37
38
39
40
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 36
def switch!(feature, enabled)
record = find_or_new(feature)
record.enabled = enabled
record.save
end
|
#switchable? ⇒ Boolean
28
29
30
|
# File 'lib/flipflop/strategies/sequel_strategy.rb', line 28
def switchable?
true
end
|