amazon_seller_central 0.1.1 → 0.2.0

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.
Files changed (30) hide show
  1. data/README.md +42 -5
  2. data/VERSION +1 -1
  3. data/amazon_seller_central.gemspec +22 -4
  4. data/lib/amazon_seller_central/feedback_page.rb +1 -13
  5. data/lib/amazon_seller_central/inventory.rb +23 -0
  6. data/lib/amazon_seller_central/inventory_page.rb +126 -0
  7. data/lib/amazon_seller_central/listing.rb +42 -0
  8. data/lib/amazon_seller_central/listing_set.rb +13 -0
  9. data/lib/amazon_seller_central/mechanizer.rb +10 -5
  10. data/lib/amazon_seller_central/page.rb +26 -0
  11. data/lib/amazon_seller_central.rb +5 -0
  12. data/spec/lib/feedback_page_spec.rb +5 -25
  13. data/spec/lib/inventory_page_spec.rb +120 -0
  14. data/spec/lib/inventory_spec.rb +26 -0
  15. data/spec/lib/listing_set_spec.rb +39 -0
  16. data/spec/lib/listing_spec.rb +78 -0
  17. data/spec/lib/mechanizer_spec.rb +24 -19
  18. data/spec/spec_helper.rb +3 -0
  19. data/spec/support/page_body_regexen.rb +7 -0
  20. data/spec/support/page_examples.rb +23 -0
  21. data/spec/support/sample_pages/Feedback Manager.html +1 -1
  22. data/spec/support/sample_pages/another_listings_page.html +12299 -0
  23. data/spec/support/sample_pages/listings_last_page.html +3345 -0
  24. data/spec/support/sample_pages/listings_page_1.html +12937 -0
  25. data/spec/support/sample_pages/listings_page_2.html +12970 -0
  26. data/spec/support/sample_pages/update_inventory_result_from_last_page.html +3345 -0
  27. data/spec/support/sample_pages/update_inventory_result_from_page_1.html +12939 -0
  28. data/spec/support/sample_pages/update_inventory_result_from_page_2.html +11274 -0
  29. data/spec/support/sample_pages.rb +25 -12
  30. metadata +82 -64
@@ -1,19 +1,32 @@
1
1
  require 'fakeweb'
2
- def mock_seller_central_page_results!
3
- mock_pages = {}
4
- Dir.glob("#{File.join(File.dirname(__FILE__), 'sample_pages')}/*.html").each do |sample_html|
5
- page_name = sample_html.split(/\//).last.gsub(/\.html$/,'').downcase.tr_s(' ', '_').to_sym
6
- mock_pages[page_name] = File.read(sample_html)
7
- end
8
2
 
9
- FakeWeb.allow_net_connect = false
10
- FakeWeb.register_uri(:any, 'https://sellercentral.amazon.com/', :response => mock_pages[:seller_central])
11
- FakeWeb.register_uri(:any, 'https://sellercentral.amazon.com/gp/homepage.html', :response => mock_pages[:seller_central_redirect])
12
- FakeWeb.register_uri(:post, 'https://sellercentral.amazon.com/gp/sign-in/sign-in.html', :response => mock_pages[:seller_central_homepage])
3
+ def mock_pages
4
+ @mock_pages ||= begin
5
+ mock_pages = {}
6
+ Dir.glob("#{File.join(File.dirname(__FILE__), 'sample_pages')}/*.html").each do |sample_html|
7
+ page_name = sample_html.split(/\//).last.gsub(/\.html$/,'').downcase.tr_s(' ', '_').to_sym
8
+ mock_pages[page_name] = File.read(sample_html)
9
+ end
10
+ mock_pages
11
+ end
12
+ end
13
+
14
+ def mock_seller_central_page_results!
15
+ FakeWeb.allow_net_connect = false
16
+ FakeWeb.register_uri(:any, 'https://sellercentral.amazon.com/', :response => mock_pages[:seller_central])
17
+ FakeWeb.register_uri(:any, 'https://sellercentral.amazon.com/gp/homepage.html', :response => mock_pages[:seller_central_redirect])
18
+ FakeWeb.register_uri(:post, 'https://sellercentral.amazon.com/gp/sign-in/sign-in.html', :response => mock_pages[:seller_central_homepage])
13
19
 
14
- FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/feedback-manager/home.html/ref=ag_feedback_mmap_home', :response => mock_pages[:feedback_manager])
15
- FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/feedback-manager/view-all-feedback.html?ie=UTF8&sortType=sortByDate&dateRange=&descendingOrder=1', :response => mock_pages[:feedback_page_1])
20
+ # Feedback
21
+ FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/feedback-manager/home.html/ref=ag_feedback_mmap_home', :response => mock_pages[:feedback_manager])
22
+ FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/feedback-manager/view-all-feedback.html?ie=UTF8&sortType=sortByDate&dateRange=&descendingOrder=1', :response => mock_pages[:feedback_page_1])
16
23
  FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/feedback-manager/view-all-feedback.html?ie=UTF8&sortType=sortByDate&pageSize=50&dateRange=&currentPage=2&descendingOrder=1', :response => mock_pages[:feedback_page_2])
17
24
  FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/feedback-manager/view-all-feedback.html?ie=UTF8&sortType=sortByDate&pageSize=50&dateRange=&currentPage=3&descendingOrder=1', :response => mock_pages[:feedback_page_last])
18
25
 
26
+ # Inventory
27
+ FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/ezdpc-gui/inventory-status/status.html/ref=ag_invmgr_mmap_home', :response => mock_pages[:listings_page_1])
28
+ FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/ezdpc-gui/inventory-status/status.html/ref=ag_invmgr_mmap_home&searchPageOffset=2', :response => mock_pages[:listings_page_2])
29
+ FakeWeb.register_uri(:get, 'https://sellercentral.amazon.com/gp/ezdpc-gui/inventory-status/status.html/ref=ag_invmgr_mmap_home&searchPageOffset=3', :response => mock_pages[:listings_last_page])
30
+ FakeWeb.register_uri(:post, 'https://sellercentral.amazon.com/myi/search/ProductSummary', :response => mock_pages[:update_inventory_result_from_page_1])
31
+ FakeWeb.register_uri(:post, 'https://sellercentral.amazon.com/myi/search/ProductSummary;jsessionid=455FF454220CA14A5D06A565555A0450', :response => mock_pages[:update_inventory_result_from_page_1])
19
32
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon_seller_central
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - optoro
@@ -15,13 +15,12 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-07-09 00:00:00 -04:00
18
+ date: 2011-09-01 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- prerelease: false
23
- type: :runtime
24
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ name: mechanize
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
26
  - - ">="
@@ -32,12 +31,12 @@ dependencies:
32
31
  - 0
33
32
  - 0
34
33
  version: 1.0.0
35
- name: mechanize
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
34
  prerelease: false
39
- type: :development
40
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ type: :runtime
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
42
  - - ~>
@@ -48,12 +47,12 @@ dependencies:
48
47
  - 3
49
48
  - 0
50
49
  version: 2.3.0
51
- name: rspec
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
50
  prerelease: false
55
51
  type: :development
56
- requirement: &id003 !ruby/object:Gem::Requirement
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: bundler
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
57
56
  none: false
58
57
  requirements:
59
58
  - - ~>
@@ -64,12 +63,12 @@ dependencies:
64
63
  - 0
65
64
  - 0
66
65
  version: 1.0.0
67
- name: bundler
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
66
  prerelease: false
71
67
  type: :development
72
- requirement: &id004 !ruby/object:Gem::Requirement
68
+ requirement: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeweler
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
73
72
  none: false
74
73
  requirements:
75
74
  - - ~>
@@ -80,12 +79,12 @@ dependencies:
80
79
  - 6
81
80
  - 3
82
81
  version: 1.6.3
83
- name: jeweler
84
- version_requirements: *id004
85
- - !ruby/object:Gem::Dependency
86
82
  prerelease: false
87
83
  type: :development
88
- requirement: &id005 !ruby/object:Gem::Requirement
84
+ requirement: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ name: rcov
87
+ version_requirements: &id005 !ruby/object:Gem::Requirement
89
88
  none: false
90
89
  requirements:
91
90
  - - ">="
@@ -94,12 +93,12 @@ dependencies:
94
93
  segments:
95
94
  - 0
96
95
  version: "0"
97
- name: rcov
98
- version_requirements: *id005
99
- - !ruby/object:Gem::Dependency
100
96
  prerelease: false
101
97
  type: :development
102
- requirement: &id006 !ruby/object:Gem::Requirement
98
+ requirement: *id005
99
+ - !ruby/object:Gem::Dependency
100
+ name: yard
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
103
102
  none: false
104
103
  requirements:
105
104
  - - ">="
@@ -108,12 +107,12 @@ dependencies:
108
107
  segments:
109
108
  - 0
110
109
  version: "0"
111
- name: yard
112
- version_requirements: *id006
113
- - !ruby/object:Gem::Dependency
114
110
  prerelease: false
115
111
  type: :development
116
- requirement: &id007 !ruby/object:Gem::Requirement
112
+ requirement: *id006
113
+ - !ruby/object:Gem::Dependency
114
+ name: guard
115
+ version_requirements: &id007 !ruby/object:Gem::Requirement
117
116
  none: false
118
117
  requirements:
119
118
  - - ">="
@@ -122,12 +121,12 @@ dependencies:
122
121
  segments:
123
122
  - 0
124
123
  version: "0"
125
- name: guard
126
- version_requirements: *id007
127
- - !ruby/object:Gem::Dependency
128
124
  prerelease: false
129
125
  type: :development
130
- requirement: &id008 !ruby/object:Gem::Requirement
126
+ requirement: *id007
127
+ - !ruby/object:Gem::Dependency
128
+ name: guard-rspec
129
+ version_requirements: &id008 !ruby/object:Gem::Requirement
131
130
  none: false
132
131
  requirements:
133
132
  - - ">="
@@ -136,12 +135,12 @@ dependencies:
136
135
  segments:
137
136
  - 0
138
137
  version: "0"
139
- name: guard-rspec
140
- version_requirements: *id008
141
- - !ruby/object:Gem::Dependency
142
138
  prerelease: false
143
139
  type: :development
144
- requirement: &id009 !ruby/object:Gem::Requirement
140
+ requirement: *id008
141
+ - !ruby/object:Gem::Dependency
142
+ name: rb-inotify
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
145
144
  none: false
146
145
  requirements:
147
146
  - - ">="
@@ -152,12 +151,12 @@ dependencies:
152
151
  - 8
153
152
  - 5
154
153
  version: 0.8.5
155
- name: rb-inotify
156
- version_requirements: *id009
157
- - !ruby/object:Gem::Dependency
158
154
  prerelease: false
159
155
  type: :development
160
- requirement: &id010 !ruby/object:Gem::Requirement
156
+ requirement: *id009
157
+ - !ruby/object:Gem::Dependency
158
+ name: libnotify
159
+ version_requirements: &id010 !ruby/object:Gem::Requirement
161
160
  none: false
162
161
  requirements:
163
162
  - - ">="
@@ -166,12 +165,12 @@ dependencies:
166
165
  segments:
167
166
  - 0
168
167
  version: "0"
169
- name: libnotify
170
- version_requirements: *id010
171
- - !ruby/object:Gem::Dependency
172
168
  prerelease: false
173
169
  type: :development
174
- requirement: &id011 !ruby/object:Gem::Requirement
170
+ requirement: *id010
171
+ - !ruby/object:Gem::Dependency
172
+ name: ffi
173
+ version_requirements: &id011 !ruby/object:Gem::Requirement
175
174
  none: false
176
175
  requirements:
177
176
  - - ">="
@@ -180,12 +179,12 @@ dependencies:
180
179
  segments:
181
180
  - 0
182
181
  version: "0"
183
- name: ffi
184
- version_requirements: *id011
185
- - !ruby/object:Gem::Dependency
186
182
  prerelease: false
187
183
  type: :development
188
- requirement: &id012 !ruby/object:Gem::Requirement
184
+ requirement: *id011
185
+ - !ruby/object:Gem::Dependency
186
+ name: faker
187
+ version_requirements: &id012 !ruby/object:Gem::Requirement
189
188
  none: false
190
189
  requirements:
191
190
  - - ">="
@@ -194,12 +193,12 @@ dependencies:
194
193
  segments:
195
194
  - 0
196
195
  version: "0"
197
- name: faker
198
- version_requirements: *id012
199
- - !ruby/object:Gem::Dependency
200
196
  prerelease: false
201
197
  type: :development
202
- requirement: &id013 !ruby/object:Gem::Requirement
198
+ requirement: *id012
199
+ - !ruby/object:Gem::Dependency
200
+ name: fakeweb
201
+ version_requirements: &id013 !ruby/object:Gem::Requirement
203
202
  none: false
204
203
  requirements:
205
204
  - - ">="
@@ -208,12 +207,12 @@ dependencies:
208
207
  segments:
209
208
  - 0
210
209
  version: "0"
211
- name: fakeweb
212
- version_requirements: *id013
213
- - !ruby/object:Gem::Dependency
214
210
  prerelease: false
215
211
  type: :development
216
- requirement: &id014 !ruby/object:Gem::Requirement
212
+ requirement: *id013
213
+ - !ruby/object:Gem::Dependency
214
+ name: ruby-debug
215
+ version_requirements: &id014 !ruby/object:Gem::Requirement
217
216
  none: false
218
217
  requirements:
219
218
  - - ">="
@@ -222,8 +221,9 @@ dependencies:
222
221
  segments:
223
222
  - 0
224
223
  version: "0"
225
- name: ruby-debug
226
- version_requirements: *id014
224
+ prerelease: false
225
+ type: :development
226
+ requirement: *id014
227
227
  description: This gem is intended to wrap Amazon's SellerCentral pages with a Ruby API. Currently this gem supports accessing buyer feedback only.
228
228
  email: dev@optoro.com
229
229
  executables: []
@@ -248,12 +248,23 @@ files:
248
248
  - lib/amazon_seller_central/configuration.rb
249
249
  - lib/amazon_seller_central/feedback.rb
250
250
  - lib/amazon_seller_central/feedback_page.rb
251
+ - lib/amazon_seller_central/inventory.rb
252
+ - lib/amazon_seller_central/inventory_page.rb
253
+ - lib/amazon_seller_central/listing.rb
254
+ - lib/amazon_seller_central/listing_set.rb
251
255
  - lib/amazon_seller_central/mechanizer.rb
256
+ - lib/amazon_seller_central/page.rb
252
257
  - spec/amazon_seller_central_spec.rb
253
258
  - spec/lib/feedback_page_spec.rb
254
259
  - spec/lib/feedback_spec.rb
260
+ - spec/lib/inventory_page_spec.rb
261
+ - spec/lib/inventory_spec.rb
262
+ - spec/lib/listing_set_spec.rb
263
+ - spec/lib/listing_spec.rb
255
264
  - spec/lib/mechanizer_spec.rb
256
265
  - spec/spec_helper.rb
266
+ - spec/support/page_body_regexen.rb
267
+ - spec/support/page_examples.rb
257
268
  - spec/support/sample_pages.rb
258
269
  - spec/support/sample_pages/Feedback Manager.html
259
270
  - spec/support/sample_pages/Feedback Page 1.html
@@ -262,6 +273,13 @@ files:
262
273
  - spec/support/sample_pages/Seller Central Homepage.html
263
274
  - spec/support/sample_pages/Seller Central Redirect.html
264
275
  - spec/support/sample_pages/Seller Central.html
276
+ - spec/support/sample_pages/another_listings_page.html
277
+ - spec/support/sample_pages/listings_last_page.html
278
+ - spec/support/sample_pages/listings_page_1.html
279
+ - spec/support/sample_pages/listings_page_2.html
280
+ - spec/support/sample_pages/update_inventory_result_from_last_page.html
281
+ - spec/support/sample_pages/update_inventory_result_from_page_1.html
282
+ - spec/support/sample_pages/update_inventory_result_from_page_2.html
265
283
  has_rdoc: true
266
284
  homepage: http://github.com/optoro/amazon_seller_central
267
285
  licenses:
@@ -292,7 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
310
  requirements: []
293
311
 
294
312
  rubyforge_project:
295
- rubygems_version: 1.5.2
313
+ rubygems_version: 1.5.0
296
314
  signing_key:
297
315
  specification_version: 3
298
316
  summary: Ruby API to access Amazon's SellerCentral