lib/smartdc/request.rb in smartdc-0.3.0 vs lib/smartdc/request.rb in smartdc-0.4.0
- old
+ new
@@ -1,21 +1,23 @@
require 'hashie/mash'
require 'multi_json'
require 'faraday'
-require 'faraday/response/mashify'
-require 'faraday/response/parse_json'
+require 'smartdc/response/mashify'
+require 'smartdc/response/parse_json'
+require 'smartdc/response/raise_error'
module Smartdc
class Request
- attr_reader :url, :version, :response, :username, :password
- attr_accessor :return_variable
+ attr_reader :url, :version, :username, :password
+ attr_accessor :format
def initialize(options)
@url = options['url']
@version = options['version']
@username = options['username']
@password = options['password']
+ @format = options['format']
end
def get(path, params={})
request(:get, path, params)
end
@@ -32,11 +34,11 @@
request(:delete, path, params)
end
private
def request(method, path, params={})
- @response = connection.send(method) do |request|
+ response = connection.send(method) do |request|
case method
when :get
request.url path, params
when :post, :put
request.path = path
@@ -44,15 +46,15 @@
when :delete
request.url path
request.headers = {'content-length'=>'0'}
end
end
- @response.body
+ response.body
end
def connection
- case return_variable
+ case format
when 'mash', nil
middleware = 3
when 'hash'
middleware = 2
when 'json'
@@ -70,16 +72,17 @@
}
}
Faraday.new(options) do |builder|
builder.use Faraday::Request::JSON
- builder.use Faraday::Response::Mashify if middleware > 2
- builder.use Faraday::Response::ParseJson if middleware > 1
+ builder.use Smartdc::Response::Mashify if middleware > 2
+ builder.use Smartdc::Response::ParseJson if middleware > 1
+ builder.use Smartdc::Response::RaiseError
builder.adapter Faraday.default_adapter
end
end
def basic_auth(username, password)
- 'Basic ' + Base64.encode64("#{username}:#{password}").gsub!("\n", '')
+ 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
end
end
end
\ No newline at end of file