a2z 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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