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