Exception: Disqussion::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/disqussion/error.rb

Overview

Custom error class for rescuing from all Disqus errors

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, http_headers) ⇒ Error

Returns a new instance of Error.



6
7
8
9
# File 'lib/disqussion/error.rb', line 6

def initialize(message, http_headers)
  @http_headers = Hash[http_headers]
  super message
end

Instance Attribute Details

#http_headersObject (readonly)

Returns the value of attribute http_headers.



4
5
6
# File 'lib/disqussion/error.rb', line 4

def http_headers
  @http_headers
end

Instance Method Details

#ratelimit_limitObject



15
16
17
# File 'lib/disqussion/error.rb', line 15

def ratelimit_limit
  @http_headers.values_at('x-ratelimit-limit', 'X-RateLimit-Limit').detect{|value| value}.to_i
end

#ratelimit_remainingObject



19
20
21
# File 'lib/disqussion/error.rb', line 19

def ratelimit_remaining
  @http_headers.values_at('x-ratelimit-remaining', 'X-RateLimit-Remaining').detect{|value| value}.to_i
end

#ratelimit_resetObject



11
12
13
# File 'lib/disqussion/error.rb', line 11

def ratelimit_reset
  Time.at(@http_headers.values_at('x-ratelimit-reset', 'X-RateLimit-Reset').detect{|value| value}.to_i)
end

#retry_afterObject



23
24
25
# File 'lib/disqussion/error.rb', line 23

def retry_after
  [(ratelimit_reset - Time.now).ceil, 0].max
end