class Berbix::NetHTTPClient
Attributes
open_timeout[R]
read_timeout[R]
Public Class Methods
new(opts={})
click to toggle source
# File lib/berbix.rb, line 18 def initialize(opts={}) # Sets the defaults to align with the Net::HTTP defaults @open_timeout = opts[:open_timeout] || 60 @read_timeout = opts[:read_timeout] || 60 end
Public Instance Methods
request(method, url, headers, opts={})
click to toggle source
# File lib/berbix.rb, line 24 def request(method, url, headers, opts={}) uri = URI(url) klass = if method == :post Net::HTTP::Post elsif method == :patch Net::HTTP::Patch elsif method == :delete Net::HTTP::Delete else Net::HTTP::Get end req = klass.new(uri.to_s, headers) unless opts[:data].nil? req.body = opts[:data].to_json end unless opts[:auth].nil? req.basic_auth(opts[:auth][:user], opts[:auth][:pass]) end cli = Net::HTTP.new(uri.host, uri.port).tap do |http| http.use_ssl = true http.read_timeout = read_timeout http.open_timeout = open_timeout end res = cli.request(req) code = res.code.to_i if code < 200 || code >= 300 raise(Berbix::BerbixError, "unexpected status code returned: #{code}") end if code == 204 return end JSON.parse(res.body) end