Class: Flipper::Adapters::Memory
- Inherits:
-
Object
- Object
- Flipper::Adapters::Memory
- Includes:
- Flipper::Adapter
- Defined in:
- lib/flipper/adapters/memory.rb
Overview
Public: Adapter for storing everything in memory (ie: Hash). Useful for tests/specs.
Constant Summary collapse
- FeaturesKey =
:features
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Public: The name of the adapter.
Instance Method Summary collapse
-
#add(feature) ⇒ Object
Public: Adds a feature to the set of known features.
-
#clear(feature) ⇒ Object
Public: Clears all the gate values for a feature.
-
#disable(feature, gate, thing) ⇒ Object
Public.
-
#enable(feature, gate, thing) ⇒ Object
Public.
-
#features ⇒ Object
Public: The set of known features.
-
#get(feature) ⇒ Object
Public.
- #get_all ⇒ Object
- #get_multi(features) ⇒ Object
-
#initialize(source = nil) ⇒ Memory
constructor
Public.
-
#inspect ⇒ Object
Public.
-
#remove(feature) ⇒ Object
Public: Removes a feature from the set of known features and clears all the values for the feature.
Methods included from Flipper::Adapter
#default_config, #import, included
Constructor Details
#initialize(source = nil) ⇒ Memory
Public
16 17 18 19 |
# File 'lib/flipper/adapters/memory.rb', line 16 def initialize(source = nil) @source = source || {} @name = :memory end |
Instance Attribute Details
#name ⇒ Object (readonly)
Public: The name of the adapter.
13 14 15 |
# File 'lib/flipper/adapters/memory.rb', line 13 def name @name end |
Instance Method Details
#add(feature) ⇒ Object
Public: Adds a feature to the set of known features.
27 28 29 30 |
# File 'lib/flipper/adapters/memory.rb', line 27 def add(feature) features.add(feature.key) true end |
#clear(feature) ⇒ Object
Public: Clears all the gate values for a feature.
41 42 43 44 45 46 |
# File 'lib/flipper/adapters/memory.rb', line 41 def clear(feature) feature.gates.each do |gate| delete key(feature, gate) end true end |
#disable(feature, gate, thing) ⇒ Object
Public
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/flipper/adapters/memory.rb', line 80 def disable(feature, gate, thing) case gate.data_type when :boolean clear(feature) when :integer write key(feature, gate), thing.value.to_s when :set set_delete key(feature, gate), thing.value.to_s else raise "#{gate} is not supported by this adapter yet" end true end |
#enable(feature, gate, thing) ⇒ Object
Public
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/flipper/adapters/memory.rb', line 66 def enable(feature, gate, thing) case gate.data_type when :boolean, :integer write key(feature, gate), thing.value.to_s when :set set_add key(feature, gate), thing.value.to_s else raise "#{gate} is not supported by this adapter yet" end true end |
#features ⇒ Object
Public: The set of known features.
22 23 24 |
# File 'lib/flipper/adapters/memory.rb', line 22 def features read_feature_keys end |
#get(feature) ⇒ Object
Public
49 50 51 |
# File 'lib/flipper/adapters/memory.rb', line 49 def get(feature) read_feature(feature) end |
#get_all ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/flipper/adapters/memory.rb', line 57 def get_all features = read_feature_keys.map do |key| Flipper::Feature.new(key, self) end read_many_features(features) end |
#get_multi(features) ⇒ Object
53 54 55 |
# File 'lib/flipper/adapters/memory.rb', line 53 def get_multi(features) read_many_features(features) end |
#inspect ⇒ Object
Public
96 97 98 99 100 101 102 |
# File 'lib/flipper/adapters/memory.rb', line 96 def inspect attributes = [ 'name=:memory', "source=#{@source.inspect}", ] "#<#{self.class.name}:#{object_id} #{attributes.join(', ')}>" end |
#remove(feature) ⇒ Object
Public: Removes a feature from the set of known features and clears all the values for the feature.
34 35 36 37 38 |
# File 'lib/flipper/adapters/memory.rb', line 34 def remove(feature) features.delete(feature.name.to_s) clear(feature) true end |