Class: Vacuum::Request
- Inherits:
-
Object
- Object
- Vacuum::Request
- Defined in:
- lib/vacuum/request.rb,
lib/vacuum/em.rb
Overview
A wrapper around the request to the Amazon Product Advertising API.
Constant Summary collapse
- CURRENT_API_VERSION =
The latest Amazon API version.
'2011-08-01'
- HOSTS =
A list of Amazon endpoints.
{ :ca => 'ecs.amazonaws.ca', :cn => 'webservices.amazon.cn', :de => 'ecs.amazonaws.de', :es => 'webservices.amazon.es', :fr => 'ecs.amazonaws.fr', :it => 'webservices.amazon.it', :jp => 'ecs.amazonaws.jp', :uk => 'ecs.amazonaws.co.uk', :us => 'ecs.amazonaws.com' }
Instance Method Summary collapse
-
#aget { ... } ⇒ Object
Performs an async request.
-
#build(hsh) ⇒ self
Merges given parameters into the request query.
-
#build!(hsh = {}) ⇒ Object
Replaces the request query with given parameters.
-
#get ⇒ Vacuum::Response
Performs a request.
-
#initialize(options) ⇒ self
constructor
Creates a new request for given locale and credentials.
-
#params ⇒ Hash
The parameters that make up the request query.
-
#url ⇒ URI::HTTP
The URL for the API request.
Constructor Details
#initialize(options) ⇒ self
Creates a new request for given locale and credentials.
31 32 33 34 35 36 37 38 39 |
# File 'lib/vacuum/request.rb', line 31 def initialize() _reset! locale = ([:locale] || :us).to_sym @host = HOSTS[locale] or raise BadLocale @key = [:key] or raise MissingKey @secret = [:secret] or raise MissingSecret @tag = [:tag] or raise MissingTag end |
Instance Method Details
#aget { ... } ⇒ Object
Performs an async request.
9 10 11 12 13 14 15 |
# File 'lib/vacuum/em.rb', line 9 def aget(&blk) http = EM::HttpRequest.new(url).get http.callback { blk.call _response(http) } http.errback { blk.call _response(http) } nil end |
#build(hsh) ⇒ self
Merges given parameters into the request query.
45 46 47 48 49 50 51 |
# File 'lib/vacuum/request.rb', line 45 def build(hsh) hsh.each do |k, v| @params[k] = v.is_a?(Array) ? v.join(',') : v.to_s end self end |
#build!(hsh = {}) ⇒ Object
Replaces the request query with given parameters.
see(#build)
56 57 58 59 |
# File 'lib/vacuum/request.rb', line 56 def build!(hsh = {}) _reset! build hsh end |
#get ⇒ Vacuum::Response
Performs a request.
64 65 66 67 |
# File 'lib/vacuum/request.rb', line 64 def get res = Net::HTTP.get_response(url) Response.new(res.body, res.code) end |
#params ⇒ Hash
Returns The parameters that make up the request query.
70 71 72 |
# File 'lib/vacuum/request.rb', line 70 def params _default_params.merge(@params) end |
#url ⇒ URI::HTTP
Returns The URL for the API request.
75 76 77 78 79 |
# File 'lib/vacuum/request.rb', line 75 def url URI::HTTP.build :host => @host, :path => '/onca/xml', :query => _query_string end |