Sha256: c7e4b3f5b1c093f70b621f86c3af2f5bd617d563af6e69240417c76a0c978a29
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
require 'faraday' module Rapidash module HTTPClient def self.included(base) base.extend(ClassMethods) end attr_accessor :extension, :site attr_writer :connection def initialize end def site=(site) @site = site @connection = nil end def connection @connection ||= Faraday.new(site || self.class.site_url) end def request(verb, url, options = {}) if extension url = "#{url}.#{(extension)}" elsif self.class.respond_to?(:url_extension) && self.class.url_extension url = "#{url}.#{(self.class.url_extension)}" end url = connection.build_url(url, options[:params]).to_s response = connection.run_request(verb, url, options[:body], options[:header]) # "foo"[0] does not work in 1.8.7, "foo"[0,1] is required case response.status.to_s[0,1] #Handle redirects when "3" request(verb, response.headers["location"], options) when "2" return Response.new(response) end end module ClassMethods attr_accessor :site_url def site(site) @site_url = site end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rapidash-0.0.5 | lib/rapidash/http_client.rb |