Class: MWS::API::Base
- Inherits:
-
Object
- Object
- MWS::API::Base
- Includes:
- HTTParty
- Defined in:
- lib/ruby-mws/api/base.rb
Instance Attribute Summary collapse
-
#response ⇒ Object
Returns the value of attribute response.
Class Method Summary collapse
Instance Method Summary collapse
- #has_next? ⇒ Boolean (also: #has_next)
-
#initialize(connection) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
- #next ⇒ Object
- #send_request(name, params, options) ⇒ Object
Constructor Details
#initialize(connection) ⇒ Base
Returns a new instance of Base.
16 17 18 19 20 21 |
# File 'lib/ruby-mws/api/base.rb', line 16 def initialize(connection) @connection = connection @saved_options = {} @next = {} self.class.base_uri "https://#{connection.host}" end |
Instance Attribute Details
#response ⇒ Object
Returns the value of attribute response.
14 15 16 |
# File 'lib/ruby-mws/api/base.rb', line 14 def response @response end |
Class Method Details
.def_request(requests, *options) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ruby-mws/api/base.rb', line 23 def self.def_request(requests, *) [requests].flatten.each do |name| self.class_eval %Q{ @@#{name}_options = options.first def #{name}(params={}) send_request(:#{name}, params, @@#{name}_options) end } end end |
Instance Method Details
#has_next? ⇒ Boolean Also known as: has_next
56 57 58 |
# File 'lib/ruby-mws/api/base.rb', line 56 def has_next? not @next[:token].nil? end |
#inspect ⇒ Object
65 66 67 |
# File 'lib/ruby-mws/api/base.rb', line 65 def inspect "#<#{self.class.to_s}:#{object_id}>" end |
#next ⇒ Object
61 62 63 |
# File 'lib/ruby-mws/api/base.rb', line 61 def next self.send(@next[:action], :next_token => @next[:token]) unless @next[:token].nil? end |
#send_request(name, params, options) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/ruby-mws/api/base.rb', line 34 def send_request(name, params, ) # prepare all required params... params = [params, , @connection.to_hash].inject :merge # default/common params params[:action] ||= name.to_s.camelize params[:signature_method] ||= 'HmacSHA256' params[:signature_version] ||= '2' params[:timestamp] ||= Time.now.iso8601 params[:version] ||= '2009-01-01' params[:lists] ||= {} params[:lists][:marketplace_id] = "MarketplaceId.Id" query = Query.new params @response = Response.parse self.class.send(params[:verb], query.request_uri), name, params if @response.respond_to?(:next_token) and @next[:token] = @response.next_token # modifying, not comparing @next[:action] = name.match(/_by_next_token/) ? name : "#{name}_by_next_token" end @response end |