amazon_seller_central 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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