Class: T1000::TransactionList

Inherits:
Array
  • Object
show all
Defined in:
lib/t-1000/transaction_list.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ip, timeout: 3600) ⇒ TransactionList

Returns a new instance of TransactionList.



22
23
24
25
26
# File 'lib/t-1000/transaction_list.rb', line 22

def initialize(ip, timeout: 3600)
  @timeout = timeout
  @key = ActiveSupport::Cache.expand_cache_key [ip], :ip_request_tracker
  replace T1000.cache.store.read(@key) || []
end

Class Method Details

.for_ip(ip, timeout: 3600) ⇒ Object



18
19
20
# File 'lib/t-1000/transaction_list.rb', line 18

def self.for_ip(ip, timeout: 3600)
  new(ip, timeout: timeout)
end

Instance Method Details

#changedObject



36
37
38
# File 'lib/t-1000/transaction_list.rb', line 36

def changed
  T1000.cache.store.write @key, self, expires_in: @timeout
end

#with_errorObject



32
33
34
# File 'lib/t-1000/transaction_list.rb', line 32

def with_error
  dup.replace select { |t| t.response.status >= 400 }
end

#within(time) ⇒ Object



28
29
30
# File 'lib/t-1000/transaction_list.rb', line 28

def within(time)
  dup.replace select { |t| t.time > time.ago }
end