class Coppertone::RequestCountLimiter
A utility class that encapsulates counter and limit behavior. Primarily used to track and limit the number of DNS queries of various types.
Attributes
count[RW]
counter_description[RW]
limit[RW]
Public Class Methods
new(limit = nil, counter_description = nil)
click to toggle source
# File lib/coppertone/request_count_limiter.rb, line 7 def initialize(limit = nil, counter_description = nil) self.limit = limit self.counter_description = counter_description self.count = 0 end
Public Instance Methods
check_if_limit_exceeded()
click to toggle source
# File lib/coppertone/request_count_limiter.rb, line 19 def check_if_limit_exceeded return if limit.nil? raise Coppertone::LimitExceededError, exception_message if exceeded? end
exceeded?()
click to toggle source
# File lib/coppertone/request_count_limiter.rb, line 28 def exceeded? return false unless limited? count > limit end
exception_message()
click to toggle source
# File lib/coppertone/request_count_limiter.rb, line 24 def exception_message "Maximum #{counter_description} limit of #{limit} exceeded." end
increment!(num = 1)
click to toggle source
# File lib/coppertone/request_count_limiter.rb, line 13 def increment!(num = 1) self.count += num check_if_limit_exceeded count end
limited?()
click to toggle source
# File lib/coppertone/request_count_limiter.rb, line 34 def limited? !limit.nil? end