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.
- data/.idea/jsLibraryMappings.xml +18 -0
- data/CHANGELOG.md +11 -0
- data/README.md +91 -95
- data/lib/a2z/client.rb +5 -0
- data/lib/a2z/requests.rb +1 -0
- data/lib/a2z/requests/browse_node_lookup.rb +17 -0
- data/lib/a2z/requests/response_group.rb +1 -0
- data/lib/a2z/responses.rb +2 -0
- data/lib/a2z/responses/browse_node.rb +47 -0
- data/lib/a2z/responses/browse_node_lookup.rb +30 -0
- data/lib/a2z/responses/item_lookup.rb +7 -7
- data/lib/a2z/responses/item_search.rb +7 -7
- data/lib/a2z/version.rb +1 -1
- data/spec/a2z/requests/browse_node_lookup_spec.rb +14 -0
- data/spec/a2z/responses/browse_node_lookup_spec.rb +13 -0
- data/spec/a2z/responses/browse_node_spec.rb +13 -0
- data/spec/a2z/version_spec.rb +1 -1
- metadata +63 -85
@@ -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
|
+
|
data/CHANGELOG.md
CHANGED
@@ -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
|
-
=>
|
70
|
-
|
71
|
-
response.
|
72
|
-
=>
|
73
|
-
|
74
|
-
response.
|
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
|
-
=>
|
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::
|
191
|
-
|
192
|
-
item
|
193
|
-
=>
|
194
|
-
|
195
|
-
item.
|
196
|
-
=>
|
197
|
-
|
198
|
-
item.
|
199
|
-
=> "
|
200
|
-
|
201
|
-
item.
|
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
|
235
|
-
item.medium_image
|
236
|
-
item.large_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
|
239
|
-
item.image_sets.keys
|
240
|
-
item.image_sets[:primary]
|
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.
|
262
|
-
item_set.images
|
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
|
282
|
-
image.width
|
283
|
-
image.height
|
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::
|
295
|
-
|
296
|
-
|
297
|
-
=>
|
298
|
-
|
299
|
-
|
300
|
-
=>
|
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
|
|
data/lib/a2z/client.rb
CHANGED
@@ -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)
|
data/lib/a2z/requests.rb
CHANGED
@@ -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
|
data/lib/a2z/responses.rb
CHANGED
@@ -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
|
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
|
-
|
19
|
-
|
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
|
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
|
-
|
22
|
-
|
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']
|
data/lib/a2z/version.rb
CHANGED
@@ -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
|
data/spec/a2z/version_spec.rb
CHANGED
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
|
-
|
5
|
-
prerelease:
|
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
|
-
|
19
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
72
|
-
segments:
|
73
|
-
- 0
|
74
|
-
version: "0"
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
75
55
|
type: :development
|
76
|
-
|
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
|
-
|
139
|
-
|
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
|
-
|
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.
|
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
|