lib/vacuum.rb in vacuum-0.1.3 vs lib/vacuum.rb in vacuum-0.2.0.pre
- old
+ new
@@ -1,25 +1,45 @@
+# Standard library dependencies.
+require 'base64'
require 'forwardable'
-require 'net/http'
require 'openssl'
require 'time'
-require 'knack'
+# External dependencies.
+require 'addressable/uri'
+require 'faraday'
+require 'nokogiri'
-%w{request response}.each do |f|
- require "vacuum/#{f}"
-end
+# Internal dependencies.
+require 'vacuum/endpoint/base'
+require 'vacuum/request/base'
+require 'vacuum/request/signature/authentication'
+require 'vacuum/request/signature/builder'
+require 'vacuum/request/utils'
+require 'vacuum/response/base'
+require 'vacuum/response/utils'
+require 'vacuum/version'
-
-# Vacuum is a Ruby wrapper to the Amazon Product Advertising API.
+# Vacuum is a Ruby wrapper to various Amazon Web Services (AWS) APIs.
module Vacuum
class BadLocale < ArgumentError; end
class MissingKey < ArgumentError; end
class MissingSecret < ArgumentError; end
- class MissingTag < ArgumentError; end
class << self
- extend Forwardable
-
- def_delegators Request, :new
+ def new(api, &blk)
+ case api
+ when /^mws/
+ require 'vacuum/mws'
+ Request::MWS.new do |config|
+ config.api = api.slice(4, api.size).to_sym
+ blk.call config
+ end
+ when :product_advertising
+ require 'vacuum/product_advertising'
+ Request::ProductAdvertising.new &blk
+ else
+ raise NotImplementedError
+ end
+ end
end
end