Class: Resilient::CircuitBreaker::Metrics::BucketSize

Inherits:
Object
  • Object
show all
Defined in:
lib/resilient/circuit_breaker/metrics/bucket_size.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(seconds) ⇒ BucketSize

Returns a new instance of BucketSize.



9
10
11
# File 'lib/resilient/circuit_breaker/metrics/bucket_size.rb', line 9

def initialize(seconds)
  @seconds = seconds
end

Instance Attribute Details

#secondsObject (readonly)

Returns the value of attribute seconds.



7
8
9
# File 'lib/resilient/circuit_breaker/metrics/bucket_size.rb', line 7

def seconds
  @seconds
end

Instance Method Details

#aligned_end(timestamp = Time.now.to_i) ⇒ Object



17
18
19
# File 'lib/resilient/circuit_breaker/metrics/bucket_size.rb', line 17

def aligned_end(timestamp = Time.now.to_i)
  aligned_start(timestamp) + @seconds - 1
end

#aligned_start(timestamp = Time.now.to_i) ⇒ Object



13
14
15
# File 'lib/resilient/circuit_breaker/metrics/bucket_size.rb', line 13

def aligned_start(timestamp = Time.now.to_i)
  timestamp / @seconds * @seconds
end

#bucket(timestamp = Time.now.to_i) ⇒ Object



21
22
23
# File 'lib/resilient/circuit_breaker/metrics/bucket_size.rb', line 21

def bucket(timestamp = Time.now.to_i)
  Bucket.new aligned_start(timestamp), aligned_end(timestamp)
end