class FontsDotCom::Request
Attributes
data_params[RW]
message[RW]
method[RW]
original_options[RW]
query_params[RW]
request[RW]
uri[RW]
Public Class Methods
fire(options)
click to toggle source
# File lib/fonts_dot_com/request.rb, line 6 def self.fire(options) self.new(options).run end
new(options={})
click to toggle source
# File lib/fonts_dot_com/request.rb, line 18 def initialize(options={}) set_up(options) end
Public Instance Methods
run(attempted_authentication=false)
click to toggle source
# File lib/fonts_dot_com/request.rb, line 69 def run(attempted_authentication=false) res = Net::HTTP.start(uri.hostname, uri.port) {|http| http.request(@request) } @response = FontsDotCom::Response.new(res) return @response end
set_up(options={})
click to toggle source
# File lib/fonts_dot_com/request.rb, line 22 def set_up(options={}) @original_options = options # Process options if options.is_a? String @message = options else @message = options[:message] @method = ( options[:method] || :get).to_sym @data_params = options[:data] @query_params = options[:query] end raise ArgumentError unless allowed_http_verbs.include? @method @uri = URI(base + message) case method when :get @request = Net::HTTP::Get.new(uri) when :post @request = Net::HTTP::Post.new(uri) when :put @request = Net::HTTP::Put.new(uri) when :delete @request = Net::HTTP::Delete.new(uri) end # Compute md5 HMAC for request @auth_param = FontsDotCom::AuthParam.create @message # Set request headers @request['authorization'] = @auth_param @request['appKey'] = FontsDotCom::Config.app_key # Set form data @request.set_form_data(data_params) if data_params # Set query params # TODO @request end
Private Instance Methods
allowed_http_verbs()
click to toggle source
# File lib/fonts_dot_com/request.rb, line 99 def allowed_http_verbs [:get, :post, :put, :delete] end
base()
click to toggle source
# File lib/fonts_dot_com/request.rb, line 79 def base "#{protocol}://api.fonts.com" end
base_uri()
click to toggle source
# File lib/fonts_dot_com/request.rb, line 83 def base_uri "#{protocol}://api.fonts.com/rest/#{format}/" end
config()
click to toggle source
# File lib/fonts_dot_com/request.rb, line 87 def config @config ||= FontsDotCom.config end
format()
click to toggle source
# File lib/fonts_dot_com/request.rb, line 95 def format 'json' #TODO make settable? end
protocol()
click to toggle source
# File lib/fonts_dot_com/request.rb, line 91 def protocol 'http' #TODO make settable? end