Class: Featureflip::Store::FlagStore
- Inherits:
-
Object
- Object
- Featureflip::Store::FlagStore
- Defined in:
- lib/featureflip/store/flag_store.rb
Instance Method Summary collapse
- #all_flags ⇒ Object
- #all_flags_map ⇒ Object
- #get_flag(key) ⇒ Object
- #get_segment(key) ⇒ Object
- #init(flags, segments) ⇒ Object
-
#initialize ⇒ FlagStore
constructor
A new instance of FlagStore.
- #remove_flag(key) ⇒ Object
- #upsert(flag) ⇒ Object
Constructor Details
#initialize ⇒ FlagStore
Returns a new instance of FlagStore.
4 5 6 7 8 |
# File 'lib/featureflip/store/flag_store.rb', line 4 def initialize @flags = {} @segments = {} @mutex = Mutex.new end |
Instance Method Details
#all_flags ⇒ Object
27 28 29 |
# File 'lib/featureflip/store/flag_store.rb', line 27 def all_flags @mutex.synchronize { @flags.values } end |
#all_flags_map ⇒ Object
31 32 33 |
# File 'lib/featureflip/store/flag_store.rb', line 31 def all_flags_map @mutex.synchronize { @flags.dup } end |
#get_flag(key) ⇒ Object
19 20 21 |
# File 'lib/featureflip/store/flag_store.rb', line 19 def get_flag(key) @mutex.synchronize { @flags[key] } end |
#get_segment(key) ⇒ Object
23 24 25 |
# File 'lib/featureflip/store/flag_store.rb', line 23 def get_segment(key) @mutex.synchronize { @segments[key] } end |
#init(flags, segments) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/featureflip/store/flag_store.rb', line 10 def init(flags, segments) @mutex.synchronize do @flags.clear @segments.clear flags.each { |f| @flags[f.key] = f } segments.each { |s| @segments[s.key] = s } end end |
#remove_flag(key) ⇒ Object
43 44 45 |
# File 'lib/featureflip/store/flag_store.rb', line 43 def remove_flag(key) @mutex.synchronize { @flags.delete(key) } end |
#upsert(flag) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/featureflip/store/flag_store.rb', line 35 def upsert(flag) @mutex.synchronize do existing = @flags[flag.key] return if existing && existing.version >= flag.version @flags[flag.key] = flag end end |