Class: SplitIoClient::Cache::Repositories::SplitsRepository

Inherits:
SplitIoClient::Cache::Repository show all
Defined in:
lib/cache/repositories/splits_repository.rb

Instance Method Summary collapse

Methods inherited from SplitIoClient::Cache::Repository

#[], #[]=

Constructor Details

#initialize(adapter) ⇒ SplitsRepository

Returns a new instance of SplitsRepository.



5
6
7
8
9
10
11
# File 'lib/cache/repositories/splits_repository.rb', line 5

def initialize(adapter)
  @adapter = adapter

  @adapter[namespace_key('last_change')] = -1
  @adapter.initialize_map(namespace_key('splits'))
  @adapter.initialize_map(namespace_key('used_segment_names'))
end

Instance Method Details

#add_split(split) ⇒ Object



13
14
15
16
17
# File 'lib/cache/repositories/splits_repository.rb', line 13

def add_split(split)
  split_without_name = split.select { |k, _| k != :name }

  @adapter.add_to_map(namespace_key('splits'), split[:name], split_without_name)
end

#get_change_numberObject



35
36
37
# File 'lib/cache/repositories/splits_repository.rb', line 35

def get_change_number
  @adapter[namespace_key('last_change')]
end

#get_split(name) ⇒ Object



23
24
25
# File 'lib/cache/repositories/splits_repository.rb', line 23

def get_split(name)
  @adapter.find_in_map(namespace_key('splits'), name)
end

#list_splitsObject



27
28
29
# File 'lib/cache/repositories/splits_repository.rb', line 27

def list_splits()
  @adapter[namespace_key('splits')]
end

#remove_split(name) ⇒ Object



19
20
21
# File 'lib/cache/repositories/splits_repository.rb', line 19

def remove_split(name)
  @adapter.add_to_map(namespace_key('splits'), name, nil)
end

#set_change_number(since) ⇒ Object



31
32
33
# File 'lib/cache/repositories/splits_repository.rb', line 31

def set_change_number(since)
  @adapter[namespace_key('last_change')] = since
end

#set_segment_names(names) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/cache/repositories/splits_repository.rb', line 39

def set_segment_names(names)
  return if names.nil? || names.empty?

  names.each do |name|
    @adapter.add_to_map(namespace_key('used_segment_names'), name, 1)
  end
end