Class: SplitIoClient::Cache::Repositories::SegmentsRepository

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

Instance Method Summary collapse

Methods inherited from SplitIoClient::Cache::Repository

#[], #[]=, #initialize

Constructor Details

This class inherits a constructor from SplitIoClient::Cache::Repository

Instance Method Details

#add_to_segment(segment) ⇒ Object



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

def add_to_segment(segment)
  name = segment[:name]

  @adapter.initialize_map(namespace_key("segments:#{name}")) if @adapter[namespace_key("segments:#{name}")].nil?

  add_keys(name, segment[:added])
  remove_keys(name, segment[:removed])
end

#get_change_number(name) ⇒ Object



32
33
34
# File 'lib/cache/repositories/segments_repository.rb', line 32

def get_change_number(name)
  @adapter.find_in_map(namespace_key('changes'), name) || -1
end

#get_segment_keys(name) ⇒ Object



14
15
16
# File 'lib/cache/repositories/segments_repository.rb', line 14

def get_segment_keys(name)
  @adapter[namespace_key("segments:#{name}")]
end

#in_segment?(name, key) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/cache/repositories/segments_repository.rb', line 18

def in_segment?(name, key)
  @adapter.in_map?(namespace_key("segments:#{name}"), key)
end

#set_change_number(name, last_change) ⇒ Object



26
27
28
29
30
# File 'lib/cache/repositories/segments_repository.rb', line 26

def set_change_number(name, last_change)
  @adapter.initialize_map(namespace_key('changes')) if @adapter[namespace_key('changes')].nil?

  @adapter.add_to_map(namespace_key('changes'), name, last_change)
end

#used_segment_namesObject



22
23
24
# File 'lib/cache/repositories/segments_repository.rb', line 22

def used_segment_names
  @adapter['splits_repository_used_segment_names'].keys
end