Class: SplitIoClient::Cache::Repositories::Events::MemoryRepository

Inherits:
SplitIoClient::Cache::Repositories::EventsRepository show all
Defined in:
lib/splitclient-rb/cache/repositories/events/memory_repository.rb

Constant Summary collapse

EVENTS_MAX_SIZE_BYTES =
5242880

Instance Method Summary collapse

Methods inherited from SplitIoClient::Cache::Repositories::EventsRepository

#post_events

Methods inherited from SplitIoClient::Cache::Repository

#set_string, #string

Constructor Details

#initialize(config) ⇒ MemoryRepository

Returns a new instance of MemoryRepository.



8
9
10
11
12
# File 'lib/splitclient-rb/cache/repositories/events/memory_repository.rb', line 8

def initialize(config)
  @config = config
  @adapter = @config.events_adapter
  @size = 0
end

Instance Method Details

#add(key, traffic_type, event_type, time, value, properties, event_size) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/splitclient-rb/cache/repositories/events/memory_repository.rb', line 14

def add(key, traffic_type, event_type, time, value, properties, event_size)
  @adapter.add_to_queue(m: , e: event(key, traffic_type, event_type, time, value, properties))
  @size += event_size

  post_events if @size >= EVENTS_MAX_SIZE_BYTES || @adapter.length == @config.events_queue_size

  rescue StandardError => error
    @config.log_found_exception(__method__.to_s, error)
end

#batchObject



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

def batch
  return [] if @config.events_queue_size.zero?

  @adapter.get_batch(@config.events_queue_size)
end

#clearObject



24
25
26
27
# File 'lib/splitclient-rb/cache/repositories/events/memory_repository.rb', line 24

def clear
  @size = 0
  @adapter.clear
end