Class: Fickle::Backends::Memory

Inherits:
AbstractBackend show all
Defined in:
lib/fickle/backends/memory.rb,
lib/fickle/backends/memory/feature_set.rb

Defined Under Namespace

Classes: FeatureSet

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from AbstractBackend

#feature_set, #global_disable, #global_enable, #inspect, #new_feature_set, #override_disable, #override_enable, #remove_global, #remove_override

Constructor Details

#initialize(options = {}) ⇒ Memory

Returns a new instance of Memory.



7
8
9
10
11
12
# File 'lib/fickle/backends/memory.rb', line 7

def initialize(options={})
  @models = []
  @model_feature_sets = {}
  @sets = {}
  super(options.merge(:feature_set_class => Fickle::Backends::Memory::FeatureSet))
end

Instance Attribute Details

#model_feature_setsObject (readonly)

Returns the value of attribute model_feature_sets.



31
32
33
# File 'lib/fickle/backends/memory.rb', line 31

def model_feature_sets
  @model_feature_sets
end

#modelsObject (readonly)

Returns the value of attribute models.



31
32
33
# File 'lib/fickle/backends/memory.rb', line 31

def models
  @models
end

Instance Method Details

#add_feature_set(feature_set_key, feature_set) ⇒ Object



33
34
35
# File 'lib/fickle/backends/memory.rb', line 33

def add_feature_set(feature_set_key, feature_set)
  @sets[feature_set_key] = feature_set
end

#add_model(model) ⇒ Object



23
24
25
# File 'lib/fickle/backends/memory.rb', line 23

def add_model(model)
  @models = (@models | [model])
end

#add_model_feature_set(feature_set_key, model) ⇒ Object



18
19
20
21
# File 'lib/fickle/backends/memory.rb', line 18

def add_model_feature_set(feature_set_key, model)
  @model_feature_sets[model] ||= []
  @model_feature_sets[model] = (@model_feature_sets[model] | [feature_set_key])
end

#feature_setsObject



37
38
39
# File 'lib/fickle/backends/memory.rb', line 37

def feature_sets
  @sets
end

#get_feature_set(feature_set_key) ⇒ Object



14
15
16
# File 'lib/fickle/backends/memory.rb', line 14

def get_feature_set(feature_set_key)
  @sets[feature_set_key] ||= new_feature_set(feature_set_key)
end

#remove_model(model) ⇒ Object



27
28
29
# File 'lib/fickle/backends/memory.rb', line 27

def remove_model(model)
  @models = (@models - [model])
end