Class: SplitIoClient::Cache::Repositories::SegmentsRepository
- Inherits:
-
SplitIoClient::Cache::Repository
- Object
- SplitIoClient::Cache::Repository
- SplitIoClient::Cache::Repositories::SegmentsRepository
- Defined in:
- lib/cache/repositories/segments_repository.rb
Constant Summary collapse
- KEYS_SLICE =
3000
Instance Method Summary collapse
-
#add_to_segment(segment) ⇒ Object
Receives segment data, adds and removes segements from the store.
- #get_change_number(name) ⇒ Object
- #get_segment_keys(name) ⇒ Object
- #in_segment?(name, key) ⇒ Boolean
-
#initialize(adapter) ⇒ SegmentsRepository
constructor
A new instance of SegmentsRepository.
- #set_change_number(name, last_change) ⇒ Object
- #used_segment_names ⇒ Object
Methods inherited from SplitIoClient::Cache::Repository
Constructor Details
#initialize(adapter) ⇒ SegmentsRepository
Returns a new instance of SegmentsRepository.
7 8 9 10 11 |
# File 'lib/cache/repositories/segments_repository.rb', line 7 def initialize(adapter) @adapter = adapter @adapter.set_bool(namespace_key('ready'), false) end |
Instance Method Details
#add_to_segment(segment) ⇒ Object
Receives segment data, adds and removes segements from the store
14 15 16 17 18 19 20 21 |
# File 'lib/cache/repositories/segments_repository.rb', line 14 def add_to_segment(segment) name = segment[:name] @adapter.initialize_set(segment_data(name)) unless @adapter.exists?(segment_data(name)) add_keys(name, segment[:added]) remove_keys(name, segment[:removed]) end |
#get_change_number(name) ⇒ Object
39 40 41 |
# File 'lib/cache/repositories/segments_repository.rb', line 39 def get_change_number(name) @adapter.string(namespace_key("segment.#{name}.till")) || -1 end |
#get_segment_keys(name) ⇒ Object
23 24 25 |
# File 'lib/cache/repositories/segments_repository.rb', line 23 def get_segment_keys(name) @adapter.get_set(segment_data(name)) end |
#in_segment?(name, key) ⇒ Boolean
27 28 29 |
# File 'lib/cache/repositories/segments_repository.rb', line 27 def in_segment?(name, key) @adapter.in_set?(segment_data(name), key) end |
#set_change_number(name, last_change) ⇒ Object
35 36 37 |
# File 'lib/cache/repositories/segments_repository.rb', line 35 def set_change_number(name, last_change) @adapter.set_string(namespace_key("segment.#{name}.till"), last_change) end |
#used_segment_names ⇒ Object
31 32 33 |
# File 'lib/cache/repositories/segments_repository.rb', line 31 def used_segment_names @adapter.get_set(namespace_key('segments.registered')) end |