module Curlable
methods to curl a url
Constants
- RETRIES
Public Instance Methods
curl_get(url, opts = {})
click to toggle source
# File lib/arcrest/curlable.rb, line 11 def curl_get(url, opts = {}) c = Curl::Easy.new(url) { |curl| configure(curl, opts[:headers] || {}) } try(c, opts[:retries] || RETRIES) c.perform code = c.response_code raise BadHttpResponse, "#{code} at #{url}" unless [2, 3].include? code / 100 c.body_str end
Private Instance Methods
configure(curl, headers)
click to toggle source
# File lib/arcrest/curlable.rb, line 28 def configure(curl, headers) curl.follow_location = true curl.encoding = 'gzip' headers.each { |k, v| curl.headers[k.capitalize] = v } end
try(curl, tries)
click to toggle source
# File lib/arcrest/curlable.rb, line 23 def try(curl, tries) curl.perform curl.on_failure { |c, _e| try(c, tries -= 1) if tries > 1 } # recurse end