Class: Amazon::Awis

Inherits:
Object
  • Object
show all
Defined in:
lib/amazon/awis.rb

Defined Under Namespace

Classes: Response

Constant Summary collapse

@@config =
{}
@@debug =
false

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Awis

Returns a new instance of Awis.



42
43
44
45
46
47
48
49
50
# File 'lib/amazon/awis.rb', line 42

def initialize(opts={})
  @options = {
    :action => :url_info,
  }
  @options.merge!(opts)
  
  raise 'Use Awis.configure before creating a new object to set :aws_access_key_id and :aws_secret_key' unless @@config[:aws_access_key_id] && @@config[:aws_secret_key]
  raise 'Missing required option :domain' unless options[:domain]
end

Class Method Details

.configure {|@@config| ... } ⇒ Object

Yields:

  • (@@config)

Raises:

  • (ArgumentError)


52
53
54
55
# File 'lib/amazon/awis.rb', line 52

def self.configure(&proc)
  raise ArgumentError, "Block is required." unless block_given?
  yield @@config
end

.debugObject

Get debug flag.



68
69
70
# File 'lib/amazon/awis.rb', line 68

def self.debug
  @@debug
end

.debug=(dbg) ⇒ Object

Set debug flag to true or false.



73
74
75
# File 'lib/amazon/awis.rb', line 73

def self.debug=(dbg)
  @@debug = dbg
end

Instance Method Details

#optionsObject

Default service options



58
59
60
# File 'lib/amazon/awis.rb', line 58

def options
  @options
end

#options=(opts) ⇒ Object

Set default service options



63
64
65
# File 'lib/amazon/awis.rb', line 63

def options=(opts)
  @options = opts
end

#query(response_group) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/amazon/awis.rb', line 77

def query(response_group)
  raise 'Must specify Response Group e.g. :rank, rank, or Rank for Rank' unless response_group
  
  url = prepare_url(options[:domain], response_group)
  
  log "Request URL: #{url}"
  res = Net::HTTP.get_response(url)
  unless res.kind_of? Net::HTTPSuccess
    raise Amazon::RequestError, "HTTP Response: #{res.code} #{res.message}"
  end
  log "Response text: #{res.body}"
  Response.new(res.body)
end