a2z 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JavaScriptLibraryMappings">
4
+ <excludedPredefinedLibrary name="AJAX" />
5
+ <excludedPredefinedLibrary name="DHTML" />
6
+ <excludedPredefinedLibrary name="DOM Core" />
7
+ <excludedPredefinedLibrary name="DOM Events" />
8
+ <excludedPredefinedLibrary name="DOM Traversal And Range" />
9
+ <excludedPredefinedLibrary name="DOM XPath" />
10
+ <excludedPredefinedLibrary name="EcmaScript" />
11
+ <excludedPredefinedLibrary name="EcmaScript Additional" />
12
+ <excludedPredefinedLibrary name="EcmaScript L5" />
13
+ <excludedPredefinedLibrary name="EcmaScript for XML" />
14
+ <excludedPredefinedLibrary name="HTML 5" />
15
+ <excludedPredefinedLibrary name="WebGL" />
16
+ </component>
17
+ </project>
18
+
@@ -1,3 +1,14 @@
1
+ ## A2z 0.0.4 (Jan 2, 2012)
2
+
3
+ * Implement Amazon's BrowseNodeLookup operation, accessible through
4
+ `Client#browse_node_lookup`. *Matt Huggins*
5
+
6
+ * Remove unintended `valid` accessor on `ItemLookup` and `ItemSearch` response
7
+ objects, favoring the `valid?` method. *Matt Huggins*
8
+
9
+ * Accept a string or an array for ResponseGroup value when initializing via
10
+ `ItemLookup#response_group` or `ItemSearch#response_group`. *Matt Huggins*
11
+
1
12
  ## A2z 0.0.3 (Dec 30, 2012)
2
13
 
3
14
  * Add `small_image`, `medium_image`, and `large_image` accessors on `Item`,
data/README.md CHANGED
@@ -52,6 +52,52 @@ This file can then be used in the following manner:
52
52
  config = YAML.load_file(Rails.root.join('config', 'amazon.yml'))
53
53
  client = A2z::Client.new(config)
54
54
 
55
+ ### Browse Node Lookup
56
+
57
+ Once you have instantiated an `A2z::Client` instance, browsing category nodes
58
+ can be done through the `browse_node_lookup` method.
59
+
60
+ response = client.browse_node_lookup(1000)
61
+
62
+ The return value is an `A2z::Responses::BrowseNodeLookup` object. The above
63
+ example would make the following calls possible.
64
+
65
+ response.valid? # => true
66
+ response.operation_request # => #<A2z::Responses::OperationRequest ...>
67
+
68
+ node = response.node # => #<A2z::Responses::BrowseNode ...>
69
+ node.id # => 1000
70
+ node.name # => "Subjects"
71
+ node.root? # => true
72
+ node.ancestors.size # => 1
73
+ node.children.size # => 30
74
+
75
+ ancestor = node.ancestors.first # => #<A2z::Responses::BrowseNode ...>
76
+ ancestor.id # => 283155
77
+ ancestor.name # => "Books"
78
+ ancestor.root? # => false
79
+
80
+ child = node.children.first # => #<A2z::Responses::BrowseNode ...>
81
+ child.id # => 1
82
+ child.name # => "Arts & Photography"
83
+ child.root? # => false
84
+
85
+ For more information on interacting with `A2z::Responses::OperationRequest`
86
+ objects, refer to its respective section below. With regards to children, only
87
+ the direct children are included in a response. However, ancestors are nested
88
+ all the way to the top-most parent.
89
+
90
+ The following code demonstrate the full collection of methods provided when
91
+ performing a browse node lookup.
92
+
93
+ response = client.browse_node_lookup(1000) do
94
+ response_group 'TopSellers'
95
+ end
96
+
97
+ Required arguments and argument values vary depending upon how you use the API.
98
+ For a full list of arguments and when they are required vs. optional, refer to
99
+ Amazon's [BrowseNodeLookup documentation](http://docs.amazonwebservices.com/AWSECommerceService/latest/DG/BrowseNodeLookup.html).
100
+
55
101
  ### Item Search
56
102
 
57
103
  Once you have instantiated an `A2z::Client` instance, searching for products
@@ -65,26 +111,13 @@ can be done through the `item_search` method.
65
111
  The return value is an `A2z::Responses::ItemSearch` object. The example above
66
112
  would make the following calls possible.
67
113
 
68
- response.valid?
69
- => true
70
-
71
- response.total_results
72
- => 435
73
-
74
- response.total_pages
75
- => 44
76
-
77
- response.items.size
78
- => 10
79
-
80
- response.items.first
81
- # => #<A2z::Responses::Item ...>
82
-
83
- response.more_search_results_url
84
- => "http://www.amazon.com/gp/redirect.html?camp=2025&creative=386001&location=..."
85
-
86
- response.operation_request
87
- => #<A2z::Responses::OperationRequest ...>
114
+ response.valid? # => true
115
+ response.total_results # => 435
116
+ response.total_pages # => 44
117
+ response.items.size # => 10
118
+ response.items.first # => #<A2z::Responses::Item ...>
119
+ response.more_search_results_url # => "http://www.amazon.com/gp/redirect.html?camp=2025&creative=386001&location=..."
120
+ response.operation_request # => #<A2z::Responses::OperationRequest ...>
88
121
 
89
122
  For more information on interacting with `A2z::Responses::Item` and
90
123
  `A2z::Responses::OperationRequest` objects, refer to their respective sections
@@ -144,14 +177,9 @@ be done through the `item_lookup` method.
144
177
  The return value is an `A2z::Responses::ItemLookup` object. The example above
145
178
  would make the following calls possible.
146
179
 
147
- response.valid?
148
- => true
149
-
150
- response.item
151
- # => #<A2z::Responses::Item ...>
152
-
153
- response.operation_request
154
- => #<A2z::Responses::OperationRequest ...>
180
+ response.valid? # => true
181
+ response.item # => #<A2z::Responses::Item ...>
182
+ response.operation_request # => #<A2z::Responses::OperationRequest ...>
155
183
 
156
184
  For more information on interacting with `A2z::Responses::Item` and
157
185
  `A2z::Responses::OperationRequest` objects, refer to their respective sections
@@ -186,38 +214,19 @@ instance methods, respectively.
186
214
 
187
215
  For example:
188
216
 
189
- response = client.item_search { ... }
190
- => #<A2z::Responses::ItemSearch ...>
191
-
192
- item = response.items.first
193
- => #<A2z::Responses::Item ...>
194
-
195
- item.asin
196
- => "B008FERRFO"
197
-
198
- item.title
199
- => "Away From The World (Deluxe Version)"
200
-
201
- item.keys
202
- => ["artist", "manufacturer", "product_group"]
203
-
204
- item.composer?
205
- => false
206
-
207
- item.artist? # or item.manufacturer? or item.product_group?
208
- => true
209
-
210
- item.artist
211
- => "Dave Matthews Band"
212
-
213
- item.manufacturer
214
- => "RCA"
215
-
216
- item.product_group
217
- => "Music"
218
-
219
- item.detail_page_url
220
- => ""http://www.amazon.com/Away-From-World-Deluxe-Version/dp/B008FERRFO..."
217
+ response = client.item_search { ... } # => #<A2z::Responses::ItemSearch ...>
218
+ item = response.items.first # => #<A2z::Responses::Item ...>
219
+ item.asin # => "B008FERRFO"
220
+ item.title # => "Away From The World (Deluxe Version)"
221
+ item.keys # => ["artist", "manufacturer", "product_group"]
222
+ item.artist? # => true
223
+ item.manufacturer? # => true
224
+ item.product_group? # => true
225
+ item.composer? # => false
226
+ item.artist # => "Dave Matthews Band"
227
+ item.manufacturer # => "RCA"
228
+ item.product_group # => "Music"
229
+ item.detail_page_url # => ""http://www.amazon.com/Away-From-World-Deluxe-Version/dp/B008FERRFO..."
221
230
 
222
231
  When an item lookup or item search includes the "Images" response group, items
223
232
  will also have their `small_image`, `medium_image`, `large_image`, and
@@ -231,13 +240,13 @@ response.
231
240
 
232
241
  item = response.item
233
242
 
234
- item.small_image # => #<A2z::Responses::Image ...>
235
- item.medium_image # => #<A2z::Responses::Image ...>
236
- item.large_image # => #<A2z::Responses::Image ...>
243
+ item.small_image # => #<A2z::Responses::Image ...>
244
+ item.medium_image # => #<A2z::Responses::Image ...>
245
+ item.large_image # => #<A2z::Responses::Image ...>
237
246
 
238
- item.image_sets.size # => 2
239
- item.image_sets.keys # => [:primary, :variant]
240
- item.image_sets[:primary] # => #<A2z::Responses::ImageSet ...>
247
+ item.image_sets.size # => 2
248
+ item.image_sets.keys # => [:primary, :variant]
249
+ item.image_sets[:primary] # => #<A2z::Responses::ImageSet ...>
241
250
 
242
251
  Refer to the Image Sets and Images sections below for more information on using
243
252
  this objects.
@@ -256,11 +265,10 @@ For example:
256
265
  response_group 'Images'
257
266
  end
258
267
 
259
- item_set = response.item.image_sets[:primary]
260
-
261
- item_set.category # => "primary"
262
- item_set.images.keys # => [:swatch, :small, :thumbnail, :tiny, :medium, :large]
263
- item_set.images[:swatch] # => #<A2z::Responses::Image ...>
268
+ item_set = response.item.image_sets[:primary] # => #<A2z::Responses::ImageSet ...>
269
+ item_set.category # => "primary"
270
+ item_set.images.keys # => [:swatch, :small, :thumbnail, :tiny, :medium, :large]
271
+ item_set.images[:swatch] # => #<A2z::Responses::Image ...>
264
272
 
265
273
  Refer to the Images section below for more information on using this objects.
266
274
 
@@ -277,10 +285,10 @@ For example:
277
285
  response_group 'Images'
278
286
  end
279
287
 
280
- image = response.item.large_image
281
- image.url # => "http://ecx.images-amazon.com/images/I/411%2BCDuXoSL.jpg"
282
- image.width # => 297
283
- image.height # => 500
288
+ image = response.item.large_image # => #<A2z::Responses::Image ...>
289
+ image.url # => "http://ecx.images-amazon.com/images/I/411%2BCDuXoSL.jpg"
290
+ image.width # => 297
291
+ image.height # => 500
284
292
 
285
293
  ### Operation Requests
286
294
 
@@ -290,26 +298,14 @@ instance method.
290
298
 
291
299
  For example:
292
300
 
293
- response = client.item_lookup { ... }
294
- => #<A2z::Responses::ItemLookup ...>
295
-
296
- response.operation_request.request_id
297
- => "fc5d5321-a347-4e65-9483-9655e8d9cf16"
298
-
299
- response.operation_request.request_processing_time
300
- => 0.087729
301
-
302
- response.operation_request.headers.class
303
- => Hash
304
-
305
- response.operation_request.headers['UserAgent']
306
- => "Jeff/0.4.3 (Language=Ruby; localhost)"
307
-
308
- response.operation_request.arguments.class
309
- => Hash
310
-
311
- response.operation_request.arguments['Operation']
312
- => "ItemLookup"
301
+ response = client.item_lookup { ... } # => #<A2z::Responses::ItemLookup ...>
302
+ op_req = response.operation_request # => #<A2z::Responses::OperationRequest ...>
303
+ op_req.request_id # => "fc5d5321-a347-4e65-9483-9655e8d9cf16"
304
+ op_req.request_processing_time # => 0.087729
305
+ op_req.headers.class # => Hash
306
+ op_req.headers['UserAgent'] # => "Jeff/0.4.3 (Language=Ruby; localhost)"
307
+ op_req.arguments.class # => Hash
308
+ op_req.arguments['Operation'] # => "ItemLookup"
313
309
 
314
310
  ## Contributing
315
311
 
@@ -48,6 +48,11 @@ module A2z
48
48
  Responses::ItemLookup.from_response(response)
49
49
  end
50
50
 
51
+ def browse_node_lookup(id, &block)
52
+ response = request(Requests::BrowseNodeLookup.new(id, &block))
53
+ Responses::BrowseNodeLookup.from_response(response)
54
+ end
55
+
51
56
  private
52
57
 
53
58
  def tag=(tag)
@@ -1,3 +1,4 @@
1
+ require 'a2z/requests/browse_node_lookup'
1
2
  require 'a2z/requests/item_lookup'
2
3
  require 'a2z/requests/item_search'
3
4
  require 'a2z/requests/response_group'
@@ -0,0 +1,17 @@
1
+ module A2z
2
+ module Requests
3
+ class BrowseNodeLookup
4
+ attr_reader :params
5
+
6
+ def initialize(id, &block)
7
+ @params = { 'Operation' => 'BrowseNodeLookup', 'BrowseNodeId' => id }
8
+ instance_eval(&block) if block_given?
9
+ end
10
+
11
+ def response_group(value, &block)
12
+ response_group = ResponseGroup.new(value, &block)
13
+ @params.merge!(response_group.params)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -4,6 +4,7 @@ module A2z
4
4
  attr_reader :params
5
5
 
6
6
  def initialize(value, &block)
7
+ value = value.join(',') if value.kind_of?(Array)
7
8
  @params = { 'ResponseGroup' => value }
8
9
  instance_eval(&block) if block_given?
9
10
  end
@@ -1,3 +1,5 @@
1
+ require 'a2z/responses/browse_node'
2
+ require 'a2z/responses/browse_node_lookup'
1
3
  require 'a2z/responses/image'
2
4
  require 'a2z/responses/image_set'
3
5
  require 'a2z/responses/item'
@@ -0,0 +1,47 @@
1
+ module A2z
2
+ module Responses
3
+ class BrowseNode
4
+ attr_accessor :id, :name, :ancestors, :children
5
+
6
+ def initialize
7
+ @ancestors = []
8
+ @children = []
9
+ @root = false
10
+ end
11
+
12
+ def id=(value)
13
+ @id = value.to_i
14
+ end
15
+
16
+ def root=(value)
17
+ @root = !!value
18
+ end
19
+
20
+ def root?
21
+ @root
22
+ end
23
+
24
+ def self.from_response(data)
25
+ new.tap do |browse_node|
26
+ browse_node.id = data['BrowseNodeId']
27
+ browse_node.name = data['Name']
28
+ browse_node.root = data['IsCategoryRoot'] == '1' rescue false
29
+
30
+ if data['Children'] && data['Children']['BrowseNode']
31
+ children = data['Children']['BrowseNode']
32
+ children = [children] unless children.kind_of?(Array)
33
+ browse_node.children = children.collect { |child| BrowseNode.from_response(child) }
34
+ end
35
+
36
+ if data['Ancestors'] && data['Ancestors']['BrowseNode']
37
+ ancestors = data['Ancestors']['BrowseNode']
38
+ ancestors = [ancestors] unless ancestors.kind_of?(Array)
39
+ browse_node.ancestors = ancestors.collect { |ancestor| BrowseNode.from_response(ancestor) }
40
+ end
41
+
42
+ browse_node.freeze
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,30 @@
1
+ module A2z
2
+ module Responses
3
+ class BrowseNodeLookup
4
+ attr_accessor :operation_request, :node
5
+
6
+ def initialize
7
+ @valid = true
8
+ end
9
+
10
+ def valid=(value)
11
+ @valid = !!value
12
+ end
13
+
14
+ def valid?
15
+ @valid
16
+ end
17
+
18
+ # TODO capture data['BrowseNodes']['Request']['Errors'] into an attr_accessor value
19
+ # TODO consider capturing data['BrowseNodes']['Request'] into an attr_accessor value
20
+ def self.from_response(data)
21
+ new.tap do |browse_node_lookup|
22
+ browse_node_lookup.operation_request = OperationRequest.from_response(data['OperationRequest']) if data['OperationRequest']
23
+ browse_node_lookup.node = BrowseNode.from_response(data['BrowseNodes']['BrowseNode'])
24
+ browse_node_lookup.valid = data['BrowseNodes']['Request']['IsValid'] == 'True' rescue false
25
+ browse_node_lookup.freeze
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,22 +1,22 @@
1
1
  module A2z
2
2
  module Responses
3
3
  class ItemLookup
4
- attr_accessor :operation_request, :item, :valid
4
+ attr_accessor :operation_request, :item
5
5
 
6
6
  def initialize
7
7
  @valid = true
8
8
  end
9
9
 
10
- def valid?
11
- @valid
12
- end
13
-
14
10
  def valid=(value)
15
11
  @valid = !!value
16
12
  end
17
13
 
18
- # TODO capture item_search_response['Items']['Request']['Errors'] into an attr_accessor value
19
- # TODO consider capturing item_search_response['Items']['Request'] into an attr_accessor value
14
+ def valid?
15
+ @valid
16
+ end
17
+
18
+ # TODO capture data['Items']['Request']['Errors'] into an attr_accessor value
19
+ # TODO consider capturing data['Items']['Request'] into an attr_accessor value
20
20
  def self.from_response(data)
21
21
  new.tap do |item_lookup|
22
22
  item_lookup.operation_request = OperationRequest.from_response(data['OperationRequest']) if data['OperationRequest']
@@ -1,7 +1,7 @@
1
1
  module A2z
2
2
  module Responses
3
3
  class ItemSearch
4
- attr_accessor :operation_request, :items, :total_results, :total_pages, :more_search_results_url, :valid
4
+ attr_accessor :operation_request, :items, :total_results, :total_pages, :more_search_results_url
5
5
 
6
6
  def initialize
7
7
  @items = []
@@ -10,16 +10,16 @@ module A2z
10
10
  @valid = true
11
11
  end
12
12
 
13
- def valid?
14
- @valid
15
- end
16
-
17
13
  def valid=(value)
18
14
  @valid = !!value
19
15
  end
20
16
 
21
- # TODO capture item_search_response['Items']['Request']['Errors'] into an attr_accessor value
22
- # TODO consider capturing item_search_response['Items']['Request'] into an attr_accessor value
17
+ def valid?
18
+ @valid
19
+ end
20
+
21
+ # TODO capture data['Items']['Request']['Errors'] into an attr_accessor value
22
+ # TODO consider capturing data['Items']['Request'] into an attr_accessor value
23
23
  def self.from_response(data)
24
24
  new.tap do |item_search|
25
25
  item_search.operation_request = OperationRequest.from_response(data['OperationRequest']) if data['OperationRequest']
@@ -1,3 +1,3 @@
1
1
  module A2z
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe A2z::Requests::BrowseNodeLookup do
4
+ subject do
5
+ A2z::Requests::BrowseNodeLookup.new(id, &block)
6
+ end
7
+
8
+ let(:id) { 1 }
9
+ let(:block) { Proc.new { } }
10
+
11
+ describe '#params' do
12
+ it 'should return a hash'
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe A2z::Responses::BrowseNodeLookup do
4
+ subject do
5
+ A2z::Responses::BrowseNodeLookup.from_response(browse_node_lookup_hash)
6
+ end
7
+
8
+ let(:browse_node_lookup_hash) { Hash.new }
9
+
10
+ describe '.from_response' do
11
+ it 'should return a browse node lookup object'
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe A2z::Responses::BrowseNode do
4
+ subject do
5
+ A2z::Responses::BrowseNode.from_response(browse_node_hash)
6
+ end
7
+
8
+ let(:browse_node_hash) { Hash.new }
9
+
10
+ describe '.from_response' do
11
+ it 'should return a browse node object'
12
+ end
13
+ end
@@ -3,5 +3,5 @@ require 'spec_helper'
3
3
  describe A2z do
4
4
  subject { A2z }
5
5
 
6
- specify { subject::VERSION.should == '0.0.1' }
6
+ specify { subject::VERSION.should == '0.0.4' }
7
7
  end
metadata CHANGED
@@ -1,89 +1,68 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: a2z
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Matt Huggins
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-12-30 00:00:00 -05:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-01-02 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: crack
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2156589140 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: jeff
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2156589140
25
+ - !ruby/object:Gem::Dependency
26
+ name: jeff
27
+ requirement: &2156588160 !ruby/object:Gem::Requirement
39
28
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
47
33
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: rake
51
34
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2156588160
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &2156587300 !ruby/object:Gem::Requirement
53
39
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
61
44
  type: :development
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: rspec
65
45
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2156587300
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: &2156586640 !ruby/object:Gem::Requirement
67
50
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
75
55
  type: :development
76
- version_requirements: *id004
56
+ prerelease: false
57
+ version_requirements: *2156586640
77
58
  description: Ruby DSL for Amazon Product Advertising API
78
59
  email: matt.huggins@gmail.com
79
60
  executables: []
80
-
81
61
  extensions: []
82
-
83
62
  extra_rdoc_files: []
84
-
85
- files:
63
+ files:
86
64
  - .gitignore
65
+ - .idea/jsLibraryMappings.xml
87
66
  - CHANGELOG.md
88
67
  - Gemfile
89
68
  - LICENSE
@@ -95,10 +74,13 @@ files:
95
74
  - lib/a2z/client.rb
96
75
  - lib/a2z/helpers.rb
97
76
  - lib/a2z/requests.rb
77
+ - lib/a2z/requests/browse_node_lookup.rb
98
78
  - lib/a2z/requests/item_lookup.rb
99
79
  - lib/a2z/requests/item_search.rb
100
80
  - lib/a2z/requests/response_group.rb
101
81
  - lib/a2z/responses.rb
82
+ - lib/a2z/responses/browse_node.rb
83
+ - lib/a2z/responses/browse_node_lookup.rb
102
84
  - lib/a2z/responses/image.rb
103
85
  - lib/a2z/responses/image_set.rb
104
86
  - lib/a2z/responses/item.rb
@@ -108,9 +90,12 @@ files:
108
90
  - lib/a2z/responses/operation_request.rb
109
91
  - lib/a2z/version.rb
110
92
  - spec/a2z/client_spec.rb
93
+ - spec/a2z/requests/browse_node_lookup_spec.rb
111
94
  - spec/a2z/requests/item_lookup_spec.rb
112
95
  - spec/a2z/requests/item_search_spec.rb
113
96
  - spec/a2z/requests/response_group_spec.rb
97
+ - spec/a2z/responses/browse_node_lookup_spec.rb
98
+ - spec/a2z/responses/browse_node_spec.rb
114
99
  - spec/a2z/responses/image_set_spec.rb
115
100
  - spec/a2z/responses/image_spec.rb
116
101
  - spec/a2z/responses/item_link_spec.rb
@@ -121,45 +106,38 @@ files:
121
106
  - spec/spec_helper.rb
122
107
  - tasks/debug.rake
123
108
  - tasks/rspec.rake
124
- has_rdoc: true
125
109
  homepage: https://github.com/mhuggins/a2z
126
110
  licenses: []
127
-
128
111
  post_install_message:
129
112
  rdoc_options: []
130
-
131
- require_paths:
113
+ require_paths:
132
114
  - lib
133
- required_ruby_version: !ruby/object:Gem::Requirement
115
+ required_ruby_version: !ruby/object:Gem::Requirement
134
116
  none: false
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- hash: 3
139
- segments:
140
- - 0
141
- version: "0"
142
- required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
122
  none: false
144
- requirements:
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- hash: 3
148
- segments:
149
- - 0
150
- version: "0"
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
151
127
  requirements: []
152
-
153
128
  rubyforge_project:
154
- rubygems_version: 1.3.7
129
+ rubygems_version: 1.8.10
155
130
  signing_key:
156
131
  specification_version: 3
157
132
  summary: Ruby DSL for Amazon Product Advertising API
158
- test_files:
133
+ test_files:
159
134
  - spec/a2z/client_spec.rb
135
+ - spec/a2z/requests/browse_node_lookup_spec.rb
160
136
  - spec/a2z/requests/item_lookup_spec.rb
161
137
  - spec/a2z/requests/item_search_spec.rb
162
138
  - spec/a2z/requests/response_group_spec.rb
139
+ - spec/a2z/responses/browse_node_lookup_spec.rb
140
+ - spec/a2z/responses/browse_node_spec.rb
163
141
  - spec/a2z/responses/image_set_spec.rb
164
142
  - spec/a2z/responses/image_spec.rb
165
143
  - spec/a2z/responses/item_link_spec.rb