Class: SplitIoClient::Cache::Repositories::MemoryFlagSetsRepository

Inherits:
Object
  • Object
show all
Defined in:
lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb

Instance Method Summary collapse

Constructor Details

#initialize(flag_sets = []) ⇒ MemoryFlagSetsRepository

Returns a new instance of MemoryFlagSetsRepository.



7
8
9
10
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 7

def initialize(flag_sets = [])
  @sets_feature_flag_map = {}
  flag_sets.each{ |flag_set| @sets_feature_flag_map[flag_set] = Set[] }
end

Instance Method Details

#add_feature_flag_to_flag_set(flag_set, feature_flag) ⇒ Object



30
31
32
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 30

def add_feature_flag_to_flag_set(flag_set, feature_flag)
  @sets_feature_flag_map[flag_set].add(feature_flag) if flag_set_exist?(flag_set)
end

#add_flag_set(flag_set) ⇒ Object



22
23
24
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 22

def add_flag_set(flag_set)
  @sets_feature_flag_map[flag_set] = Set[] if !flag_set_exist?(flag_set)
end

#flag_set_exist?(flag_set) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 12

def flag_set_exist?(flag_set)
  @sets_feature_flag_map.key?(flag_set)
end

#get_flag_sets(flag_sets) ⇒ Object



16
17
18
19
20
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 16

def get_flag_sets(flag_sets)
  to_return = Array.new
  flag_sets.each { |flag_set| to_return.concat(@sets_feature_flag_map[flag_set].to_a)}
  to_return.uniq
end

#remove_feature_flag_from_flag_set(flag_set, feature_flag) ⇒ Object



34
35
36
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 34

def remove_feature_flag_from_flag_set(flag_set, feature_flag)
  @sets_feature_flag_map[flag_set].delete(feature_flag) if flag_set_exist?(flag_set)
end

#remove_flag_set(flag_set) ⇒ Object



26
27
28
# File 'lib/splitclient-rb/cache/repositories/flag_sets/memory_repository.rb', line 26

def remove_flag_set(flag_set)
  @sets_feature_flag_map.delete(flag_set) if flag_set_exist?(flag_set)
end