Class: Limiter::RateLimitResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/limiter/rate_limit_response.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ RateLimitResponse

Returns a new instance of RateLimitResponse.



8
9
10
# File 'lib/limiter/rate_limit_response.rb', line 8

def initialize(response)
  @response = response
end

Instance Attribute Details

#responseObject (readonly)

Returns the value of attribute response.



6
7
8
# File 'lib/limiter/rate_limit_response.rb', line 6

def response
  @response
end

Instance Method Details

#allowed?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/limiter/rate_limit_response.rb', line 16

def allowed?
  signed_request? && @response.status == 200
end

#exhausted?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/limiter/rate_limit_response.rb', line 12

def exhausted?
  signed_request? && @response.status == 429
end

#resets_inObject



20
21
22
23
24
25
26
# File 'lib/limiter/rate_limit_response.rb', line 20

def resets_in
  if signed_request? && !resets_at.nil?
    (Time.parse(resets_at) - Time.now).to_i
  else
    0
  end
end

#signed_request?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/limiter/rate_limit_response.rb', line 28

def signed_request?
  @response.headers["X-Limiter-Signed"].to_s == "true"
end