Class: FontsDotCom::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/fonts_dot_com/request.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Request

Returns a new instance of Request.



18
19
20
# File 'lib/fonts_dot_com/request.rb', line 18

def initialize(options={})
  set_up(options)
end

Instance Attribute Details

#data_paramsObject

Returns the value of attribute data_params.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def data_params
  @data_params
end

#messageObject

Returns the value of attribute message.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def message
  @message
end

#methodObject

Returns the value of attribute method.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def method
  @method
end

#original_optionsObject

Returns the value of attribute original_options.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def original_options
  @original_options
end

#query_paramsObject

Returns the value of attribute query_params.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def query_params
  @query_params
end

#requestObject

Returns the value of attribute request.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def request
  @request
end

#uriObject

Returns the value of attribute uri.



10
11
12
# File 'lib/fonts_dot_com/request.rb', line 10

def uri
  @uri
end

Class Method Details

.fire(options) ⇒ Object



6
7
8
# File 'lib/fonts_dot_com/request.rb', line 6

def self.fire(options)
  self.new(options).run
end

Instance Method Details

#run(attempted_authentication = false) ⇒ Object



69
70
71
72
73
74
75
# 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 = {}) ⇒ Object

Raises:

  • (ArgumentError)


22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 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