Class: Fickle::AbstractBackend
- Inherits:
-
Object
- Object
- Fickle::AbstractBackend
- Defined in:
- lib/fickle/abstract_backend.rb
Direct Known Subclasses
Instance Method Summary collapse
- #feature_set(key, model = nil) ⇒ Object
- #global_disable(feature) ⇒ Object
- #global_enable(feature) ⇒ Object
-
#initialize(options) ⇒ AbstractBackend
constructor
A new instance of AbstractBackend.
- #inspect ⇒ Object (also: #to_s)
- #new_feature_set(feature_set_key, options = {}) ⇒ Object
- #override_disable(feature) ⇒ Object
- #override_enable(feature) ⇒ Object
- #remove_global(feature) ⇒ Object
- #remove_override(feature) ⇒ Object
Constructor Details
#initialize(options) ⇒ AbstractBackend
Returns a new instance of AbstractBackend.
4 5 6 7 8 |
# File 'lib/fickle/abstract_backend.rb', line 4 def initialize() @_klass = [:feature_set_class] add_feature_set('global', new_feature_set('global', :set_default => true)) add_feature_set('master', new_feature_set('master')) end |
Instance Method Details
#feature_set(key, model = nil) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/fickle/abstract_backend.rb', line 43 def feature_set(key, model=nil) if model feature_set = get_feature_set("#{model}-#{key}") add_model_feature_set("#{model}-#{key}", model) else feature_set = get_feature_set(key) end return feature_set end |
#global_disable(feature) ⇒ Object
23 24 25 |
# File 'lib/fickle/abstract_backend.rb', line 23 def global_disable(feature) feature_set('global').disable_feature(feature) end |
#global_enable(feature) ⇒ Object
19 20 21 |
# File 'lib/fickle/abstract_backend.rb', line 19 def global_enable(feature) feature_set('global').enable_feature(feature) end |
#inspect ⇒ Object Also known as: to_s
53 54 55 |
# File 'lib/fickle/abstract_backend.rb', line 53 def inspect "#<Fickle::Backend overrides:#{feature_set('master').inspect} fallthroughs:#{feature_set('global').inspect}>" end |
#new_feature_set(feature_set_key, options = {}) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/fickle/abstract_backend.rb', line 10 def new_feature_set(feature_set_key, ={}) .merge!(:key => feature_set_key) if !['master', 'global'].include?(feature_set_key) [:override] = feature_set('master') [:fallthrough] = feature_set('global') end @_klass.new() end |
#override_disable(feature) ⇒ Object
35 36 37 |
# File 'lib/fickle/abstract_backend.rb', line 35 def override_disable(feature) feature_set('master').disable_feature(feature) end |
#override_enable(feature) ⇒ Object
31 32 33 |
# File 'lib/fickle/abstract_backend.rb', line 31 def override_enable(feature) feature_set('master').enable_feature(feature) end |
#remove_global(feature) ⇒ Object
27 28 29 |
# File 'lib/fickle/abstract_backend.rb', line 27 def remove_global(feature) feature_set('global').remove_feature(feature) end |
#remove_override(feature) ⇒ Object
39 40 41 |
# File 'lib/fickle/abstract_backend.rb', line 39 def remove_override(feature) feature_set('master').remove_feature(feature) end |