Sha256: d7424df9688a2b9ca9f14d4578aba99e533a7dfb688b4acc5ec13550b80bc92d
Contents?: true
Size: 1.96 KB
Versions: 1
Compression:
Stored size: 1.96 KB
Contents
module Amazon module MWS DEFAULT_HOST = "mws.amazonaws.com" class Base attr_accessor :connection def self.debug; @@debug ||= false end def self.debug=(bool); @@debug = bool end def initialize(options ={}) @connection = Amazon::MWS::Connection.connect(options) end def connection raise Amazon::MWS::NoConnectionEstablished.new if !connected? @connection end def connected? !@connection.nil? end def disconnect @connection.http.finish if @connection.persistent? @connection = nil end # Wraps the current connection's request method and picks the appropriate response class to wrap the response in. # If the response is an error, it will raise that error as an exception. All such exceptions can be caught by rescuing # their superclass, the ResponseError exception class. # # It is unlikely that you would call this method directly. Subclasses of Base have convenience methods for each http request verb # that wrap calls to request. def request(verb, path, query_params = {}, body = nil, attempts = 0, &block) # Find the connection method in connection/management.rb which is evaled into Amazon::MWS::Base response = @connection.request(verb, path, query_params, body, attempts, &block) # Each calling class is responsible for formatting the result return response rescue InternalError, RequestTimeout if attempts == 3 raise else attempts += 1 retry end end # Make some convenience methods [:get, :post, :put, :delete, :head].each do |verb| class_eval(<<-EVAL, __FILE__, __LINE__) def #{verb}(path, query_params = {}, body = nil, &block) request(:#{verb}, path, query_params, body, &block) end EVAL end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
amazon-mws-0.1.0 | lib/amazon/mws/base.rb |