class EtFakeCcd::RequestStoreService::InMemoryAdapter

Constants

TTL

Attributes

data[RW]

Public Class Methods

new() click to toggle source
# File lib/et_fake_ccd/request_store_service.rb, line 27
def initialize
  self.data = {}
end

Public Instance Methods

count(request_id) click to toggle source
# File lib/et_fake_ccd/request_store_service.rb, line 37
def count(request_id)
  expire_old_requests(request_id)
  return 0 if data[request_id].nil?

  data[request_id].length
end
store(request_id) click to toggle source
# File lib/et_fake_ccd/request_store_service.rb, line 31
def store(request_id)
  expire_old_requests(request_id)
  data[request_id] ||= []
  data[request_id] << Time.now.utc
end

Private Instance Methods

expire_old_requests(request_id) click to toggle source
# File lib/et_fake_ccd/request_store_service.rb, line 48
def expire_old_requests(request_id)
  return unless data.key?(request_id) && data[request_id].length > 0

  last_request = data[request_id].max
  if (Time.now - last_request) > TTL
    data[request_id].clear
  end
end