Class: CruFlags::FlipperAdapter
- Inherits:
-
Object
- Object
- CruFlags::FlipperAdapter
- Includes:
- Flipper::Adapter
- Defined in:
- lib/cru_flags/flipper_adapter.rb
Overview
Read-only Flipper adapter over the client's frozen snapshot (design doc §5). HARD RULE: get/get_multi/get_all build fresh, UNFROZEN top-level hashes on every call — Flipper::Adapters::Memoizable mutates the Hash we return (response.default_proc =, memoizable.rb:103), so a frozen or shared return value would raise FrozenError on every memoized request.
Instance Method Summary collapse
- #add(_feature) ⇒ Object
- #clear(_feature) ⇒ Object
- #disable(_feature, _gate, _thing) ⇒ Object
- #enable(_feature, _gate, _thing) ⇒ Object
- #features ⇒ Object
- #get(feature) ⇒ Object
- #get_all ⇒ Object
- #get_multi(features) ⇒ Object
-
#initialize(client) ⇒ FlipperAdapter
constructor
A new instance of FlipperAdapter.
- #name ⇒ Object
- #read_only? ⇒ Boolean
- #remove(_feature) ⇒ Object
Constructor Details
#initialize(client) ⇒ FlipperAdapter
Returns a new instance of FlipperAdapter.
14 15 16 |
# File 'lib/cru_flags/flipper_adapter.rb', line 14 def initialize(client) @client = client end |
Instance Method Details
#add(_feature) ⇒ Object
40 |
# File 'lib/cru_flags/flipper_adapter.rb', line 40 def add(_feature) = write_refused |
#clear(_feature) ⇒ Object
44 |
# File 'lib/cru_flags/flipper_adapter.rb', line 44 def clear(_feature) = write_refused |
#disable(_feature, _gate, _thing) ⇒ Object
48 |
# File 'lib/cru_flags/flipper_adapter.rb', line 48 def disable(_feature, _gate, _thing) = write_refused |
#enable(_feature, _gate, _thing) ⇒ Object
46 |
# File 'lib/cru_flags/flipper_adapter.rb', line 46 def enable(_feature, _gate, _thing) = write_refused |
#features ⇒ Object
22 23 24 |
# File 'lib/cru_flags/flipper_adapter.rb', line 22 def features @client.flags_for_adapter.keys.to_set end |
#get(feature) ⇒ Object
26 27 28 |
# File 'lib/cru_flags/flipper_adapter.rb', line 26 def get(feature) gates_for(feature.key) end |
#get_all ⇒ Object
35 36 37 38 |
# File 'lib/cru_flags/flipper_adapter.rb', line 35 def get_all flags = @client.flags_for_adapter flags.keys.to_h { |name| [name, gates_for(name, flags)] } end |
#get_multi(features) ⇒ Object
30 31 32 33 |
# File 'lib/cru_flags/flipper_adapter.rb', line 30 def get_multi(features) flags = @client.flags_for_adapter features.to_h { |feature| [feature.key, gates_for(feature.key, flags)] } end |
#name ⇒ Object
18 |
# File 'lib/cru_flags/flipper_adapter.rb', line 18 def name = :cru_flags |
#read_only? ⇒ Boolean
20 |
# File 'lib/cru_flags/flipper_adapter.rb', line 20 def read_only? = true |
#remove(_feature) ⇒ Object
42 |
# File 'lib/cru_flags/flipper_adapter.rb', line 42 def remove(_feature) = write_refused |