cafepress_wrapper 0.0.1

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 (57) hide show
  1. data/Gemfile +33 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +33 -0
  5. data/app/controllers/content_controller.rb +26 -0
  6. data/app/controllers/products_controller.rb +30 -0
  7. data/app/controllers/sitemap_controller.rb +26 -0
  8. data/app/controllers/stores_controller.rb +37 -0
  9. data/app/models/image_url.rb +3 -0
  10. data/app/models/product.rb +89 -0
  11. data/app/models/size.rb +3 -0
  12. data/app/models/store.rb +91 -0
  13. data/app/models/user_token.rb +36 -0
  14. data/app/views/content/about.html.erb +71 -0
  15. data/app/views/content/contact.html.erb +30 -0
  16. data/app/views/layouts/cafepress_wrapper.html.erb +75 -0
  17. data/app/views/products/show.rjs +14 -0
  18. data/app/views/sitemap/index.xml.erb +39 -0
  19. data/app/views/stores/_front_back_image.html.erb +15 -0
  20. data/app/views/stores/_product_details.html.erb +71 -0
  21. data/app/views/stores/feed.rss.builder +43 -0
  22. data/app/views/stores/index.html.erb +45 -0
  23. data/app/views/stores/show.html.erb +83 -0
  24. data/config/initializers/cafepress.rb +23 -0
  25. data/config/routes.rb +13 -0
  26. data/lib/cafepress_wrapper.rb +21 -0
  27. data/lib/db/migrate/20101103152700_create_user_tokens.rb +13 -0
  28. data/lib/db/migrate/20101104032051_create_stores.rb +13 -0
  29. data/lib/db/migrate/20101104032412_create_products.rb +16 -0
  30. data/lib/db/migrate/20101111004355_add_description_to_store.rb +9 -0
  31. data/lib/db/migrate/20101111025931_add_cafepress_design_id_to_products.rb +9 -0
  32. data/lib/db/migrate/20101119163852_add_cafepress_design_url_to_stores.rb +9 -0
  33. data/lib/db/migrate/20101119171328_add_design_background_color_to_stores.rb +9 -0
  34. data/lib/db/migrate/20101120003908_add_cafepress_back_design_id_to_products.rb +9 -0
  35. data/lib/db/migrate/20101123021036_add_cafepress_back_design_url_to_stores.rb +9 -0
  36. data/lib/db/migrate/20110301072358_add_gender_to_products.rb +9 -0
  37. data/lib/db/migrate/20110302191748_create_thumbnail_urls.rb +14 -0
  38. data/lib/db/migrate/20110302195801_add_view_to_thumbnail_urls.rb +9 -0
  39. data/lib/db/migrate/20110305004142_rename_thumbnail_urls_to_image_urls.rb +9 -0
  40. data/lib/db/migrate/20110305004402_add_image_size_to_image_urls.rb +9 -0
  41. data/lib/db/migrate/20110307005237_add_cafepress_merchandise_id_to_products.rb +9 -0
  42. data/lib/db/migrate/20110307014703_add_default_color_id_to_products.rb +9 -0
  43. data/lib/db/migrate/20110307063709_create_sizes.rb +16 -0
  44. data/lib/db/migrate/20110307064131_add_default_cafepress_size_id_to_products.rb +9 -0
  45. data/lib/db/migrate/20110308010304_add_title_to_stores.rb +9 -0
  46. data/lib/db/migrate/20110308050955_add_price_to_products.rb +9 -0
  47. data/lib/tasks/cafepress_wrapper.rake +48 -0
  48. data/public/images/ajax-loader.gif +0 -0
  49. data/public/images/back_bg.png +0 -0
  50. data/public/images/cart.png +0 -0
  51. data/public/images/fabric_bg.png +0 -0
  52. data/public/images/footer_bg.png +0 -0
  53. data/public/images/front_bg.png +0 -0
  54. data/public/images/header_bg.png +0 -0
  55. data/public/javascripts/cafepress_wrapper.js +118 -0
  56. data/public/stylesheets/cafepress_wrapper.css +473 -0
  57. metadata +137 -0
Binary file
Binary file
Binary file
@@ -0,0 +1,118 @@
1
+ /*
2
+ # Copyright 2010 Benjamin Lee Smith <benjamin.lee.smith@gmail.com>
3
+ #
4
+ # This file is part of CafePress Wrapper.
5
+ # CafePress Wrapper is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # CafePress Wrapper is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with CafePress Wrapper. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+
19
+ if(!CPW) var CPW = {};
20
+ CPW.cycle_speed = 3000;
21
+ CPW.front_images_shown = true;
22
+
23
+ CPW.cycle_images = function() {
24
+ if(CPW.front_images_shown) {
25
+ CPW.fade_fronts();
26
+ setTimeout('CPW.appear_backs();', 1000);
27
+ CPW.front_images_shown = false;
28
+ } else {
29
+ CPW.fade_backs();
30
+ setTimeout('CPW.appear_fronts();', 1000);
31
+ CPW.front_images_shown = true;
32
+ }
33
+ setTimeout('CPW.cycle_images();', CPW.cycle_speed);
34
+ };
35
+
36
+ CPW.appear_backs = function() {
37
+ $$('.back-image').forEach(function(element) {
38
+ element.appear();
39
+ });
40
+ };
41
+
42
+ CPW.appear_fronts = function() {
43
+ $$('.front-image').forEach(function(element) {
44
+ element.appear();
45
+ });
46
+ };
47
+
48
+ CPW.fade_backs = function() {
49
+ $$('.back-image').forEach(function(element) {
50
+ element.fade();
51
+ });
52
+ };
53
+
54
+ CPW.fade_fronts = function() {
55
+ $$('.front-image').forEach(function(element) {
56
+ element.fade();
57
+ });
58
+ };
59
+
60
+ CPW.update_moving_div = function() {
61
+ top_padding = 20;
62
+
63
+ //little confusing... y values go up as the user scrolls down...
64
+ min_y = $('active_product').cumulativeOffset().top - top_padding;
65
+ max_y = $('content').cumulativeOffset().top + $('content').getHeight() - $('moving_div').getHeight();
66
+
67
+ //if the user's browser is big enough to show the entire moving div at once
68
+ //if (document.viewport.getHeight() > $('moving_div').getHeight()) {
69
+ if(document.viewport.getScrollOffsets().top > min_y && document.viewport.getScrollOffsets().top < max_y) {
70
+ $('moving_div').setStyle({ top: 4 + (document.viewport.getScrollOffsets().top - min_y) + 'px' });
71
+ //new Effect.Move('moving_div', { x: 20, y: 4 + (document.viewport.getScrollOffsets().top - min_y), mode: 'absolute' });
72
+ } else if (document.viewport.getScrollOffsets().top < min_y) {
73
+ $('moving_div').setStyle({ top: '4px' });
74
+ } else if (document.viewport.getScrollOffsets().top > max_y) {
75
+ $('moving_div').setStyle({ top: (max_y-min_y)+'px'});
76
+ }
77
+ //} else {
78
+ //
79
+ //}
80
+ };
81
+
82
+ CPW.auto_update_moving_div = function() {
83
+ update_moving_div();
84
+ setTimeout('auto_update_moving_div()',1000);
85
+ };
86
+
87
+ CPW.bind_color_name_events = function() {
88
+ $$('div#colors div.multiple_colors a').each(function(element) {
89
+ element.observe('mouseover', function(event) {
90
+ $('color_'+element.readAttribute('data-color_id')+'_description').show();
91
+ });
92
+ element.observe('mouseout', function(event) {
93
+ $('color_'+element.readAttribute('data-color_id')+'_description').hide();
94
+ });
95
+ });
96
+ };
97
+
98
+ CPW.update_selected_color = function(color_id) {
99
+ $('selected_color_id').value = color_id;
100
+ };
101
+
102
+ CPW.force_numeric_quantity = function(input_field) {
103
+ var regExpr = new RegExp(/^\d*$/);
104
+ if (!regExpr.test(input_field.value)) {
105
+ // Case of error
106
+ input_field.value = "";
107
+ }
108
+ };
109
+
110
+ CPW.validate_quantity = function() {
111
+ var regex = new RegExp(/^\d*$/);
112
+ if(!regex.test($$('div#quantity input')[0].value)) {
113
+ alert('Please enter a valid number for the quantity of shirts you want.')
114
+ return false;
115
+ }
116
+ return true;
117
+ };
118
+
@@ -0,0 +1,473 @@
1
+ /*
2
+ # Copyright 2010 Benjamin Lee Smith <benjamin.lee.smith@gmail.com>
3
+ #
4
+ # This file is part of CafePress Wrapper.
5
+ # CafePress Wrapper is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # CafePress Wrapper is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with CafePress Wrapper. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+
19
+ /*
20
+ #f0f0f0
21
+ #4D5453
22
+ #DBAE5E
23
+ #BD8741
24
+ #96602D
25
+ #66371B
26
+ */
27
+
28
+ body { background-color: #fff; color: #333; }
29
+
30
+ body, p, ol, ul, td {
31
+ font-family: verdana, arial, helvetica, sans-serif;
32
+ font-size: 13px;
33
+ line-height: 18px;
34
+ }
35
+
36
+ pre {
37
+ background-color: #eee;
38
+ padding: 10px;
39
+ font-size: 11px;
40
+ }
41
+
42
+ a { color: #000; }
43
+ a:visited { color: #666; }
44
+ a:hover { color: #fff; background-color:#000; }
45
+
46
+ div.field, div.actions {
47
+ margin-bottom: 10px;
48
+ }
49
+
50
+ #notice {
51
+ color: green;
52
+ }
53
+
54
+ .field_with_errors {
55
+ padding: 2px;
56
+ background-color: red;
57
+ display: table;
58
+ }
59
+
60
+ #error_explanation {
61
+ width: 450px;
62
+ border: 2px solid red;
63
+ padding: 7px;
64
+ padding-bottom: 0;
65
+ margin-bottom: 20px;
66
+ background-color: #f0f0f0;
67
+ }
68
+
69
+ #error_explanation h2 {
70
+ text-align: left;
71
+ font-weight: bold;
72
+ padding: 5px 5px 5px 15px;
73
+ font-size: 12px;
74
+ margin: -7px;
75
+ margin-bottom: 0px;
76
+ background-color: #c00;
77
+ color: #fff;
78
+ }
79
+
80
+ #error_explanation ul li {
81
+ font-size: 12px;
82
+ list-style: square;
83
+ }
84
+
85
+
86
+ body {
87
+ height: 100%;
88
+ margin: 0px;
89
+ padding: 0px;
90
+ /*background-color: #DBAE5E !important;*/
91
+ background-image: url(/images/fabric_bg.png);
92
+ text-align: center;
93
+ }
94
+
95
+ div#header {
96
+ width: 900px;
97
+ text-align: center;
98
+ margin: 0pt auto;
99
+ background-image: url(/images/header_bg.png);
100
+ height: 150px;
101
+ border-bottom: 2px solid #96602D;
102
+ border-left: 2px solid #96602D;
103
+ border-right: 2px solid #96602D;
104
+ margin-bottom: 10px;
105
+ position: relative;
106
+ }
107
+
108
+ div#header div.menu {
109
+ position: absolute;
110
+ top: 100px;
111
+ left: 0px;
112
+ }
113
+
114
+ div#header div.menu a {
115
+ color: #000000;
116
+ text-decoration: none;
117
+ font-size: 18px;
118
+ }
119
+
120
+ div#header div.menu a:hover {
121
+ background-color: #f0f0f0;
122
+ }
123
+
124
+ div#header div.menu ul {
125
+ list-style: none;
126
+ }
127
+
128
+ div#header div.menu ul li {
129
+ list-style: none;
130
+ display: inline;
131
+ padding-left: 10px;
132
+ padding-right: 10px;
133
+ border-left: 2px solid #4D5453;
134
+ }
135
+
136
+ div#header div.menu ul li.first {
137
+ padding-left: 0px;
138
+ border-left: none;
139
+ }
140
+
141
+ div#content {
142
+ background-color: #4D5453;
143
+ width: 900px;
144
+ text-align: center;
145
+ margin: 0pt auto;
146
+ border: 2px solid #96602D;
147
+ padding-bottom: 20px;
148
+ margin-bottom: 20px;
149
+ }
150
+
151
+ div#content div#cart {
152
+ background-color: #96602D;
153
+ margin-bottom: 20px;
154
+ padding: 4px;
155
+ position: relative;
156
+ }
157
+
158
+ div#content div#cart a, div#content div#cart a:visited {
159
+ color: #000000;
160
+ text-decoration: none;
161
+ font-size: 16px;
162
+ display: block;
163
+ margin: 0pt auto;
164
+ width: 192px;
165
+ position: relative;
166
+ height: 33px;
167
+ }
168
+
169
+ div#content div#cart a:hover {
170
+ background-color: #96602D;
171
+ }
172
+
173
+ div#content div#cart a div.text {
174
+ position: absolute;
175
+ top: 8px;
176
+ left: 0px;
177
+ }
178
+
179
+ div#content div#cart a div.image {
180
+ position: absolute;
181
+ top: 0px;
182
+ right: 0px;
183
+ }
184
+
185
+ div#content div#cart a div.image img {
186
+ border: 0px;
187
+ width: 32px;
188
+ height: 32px;
189
+ }
190
+
191
+ div#footer {
192
+ background-image: url(/images/footer_bg.png);
193
+ background-repeat: no-repeat;
194
+ height: 150px;
195
+ margin: 0pt auto;
196
+ text-align: center;
197
+ width: 904px;
198
+ position: relative;
199
+ }
200
+
201
+ div#footer div.menu {
202
+ position: absolute;
203
+ top: 80px;
204
+ left: 455px;
205
+ }
206
+
207
+ div#footer div.menu a {
208
+ color: #f0f0f0;
209
+ text-decoration: none;
210
+ font-size: 18px;
211
+ }
212
+
213
+ div#footer div.menu ul {
214
+ list-style: none;
215
+ }
216
+
217
+ div#footer div.menu ul li {
218
+ list-style: none;
219
+ display: inline;
220
+ padding-left: 20px;
221
+ }
222
+
223
+ #stores, #about, #contact {
224
+ width: 850px;
225
+ margin: 0pt auto;
226
+ height: 100%;
227
+ }
228
+
229
+ #about, #contact {
230
+ background-color: #f0f0f0;
231
+ padding: 20px;
232
+ width: 810px;
233
+ }
234
+
235
+ #stores a:hover {
236
+ border: 0px;
237
+ color: inherit;
238
+ }
239
+
240
+ #stores .store {
241
+ margin: 5px;
242
+ float: left;
243
+ width: 414px;
244
+ height: 412px;
245
+ }
246
+
247
+ #stores .store .image, #stores .store .back-image, #stores .store .front-image {
248
+ height: 412px;
249
+ width: 412px;
250
+ border: 1px solid #000000;
251
+ margin: 5px;
252
+ text-align: center;
253
+ display: table-cell;
254
+ vertical-align: middle;
255
+ color: transparent;
256
+ }
257
+
258
+ #stores .store .front-image {
259
+ background-image: url(/images/front_bg.png);
260
+ background-repeat: no-repeat;
261
+ }
262
+
263
+ #stores .store .back-image {
264
+ background-image: url(/images/back_bg.png);
265
+ background-repeat: no-repeat;
266
+ }
267
+
268
+ div.clear {
269
+ clear:both;
270
+ }
271
+
272
+ #products {
273
+ width:460px;
274
+ float:left;
275
+ }
276
+
277
+ #products a {
278
+ display: inline-block;
279
+ border: 2px solid #fff;
280
+ line-height: 0px;
281
+ margin: 1px;
282
+ }
283
+
284
+ #products a > img {
285
+ border: none;
286
+ }
287
+
288
+ #products a:hover {
289
+ border: 2px solid #DBAE5E;
290
+ background-color: inherit;
291
+ }
292
+
293
+ #products #mens_and_womens td {
294
+ vertical-align: top;
295
+ width: 50%;
296
+ padding: 0px;
297
+ }
298
+
299
+ #products #mens_and_womens h2 {
300
+ margin: 0px;
301
+ padding: 8px;
302
+ }
303
+
304
+ #products #mens_and_womens div.thumbnails {
305
+ padding-top: 8px;
306
+ }
307
+
308
+ #products #mens_and_womens #mens {
309
+ border: 2px solid #7ABACC;
310
+ }
311
+
312
+ #products #mens_and_womens #mens h2 {
313
+ background-color: #7ABACC;
314
+ }
315
+
316
+ #products #mens_and_womens #womens {
317
+ border: 2px solid #FFB2CB;
318
+ }
319
+
320
+ #products #mens_and_womens #womens h2 {
321
+ background-color: #FFB2CB;
322
+ }
323
+
324
+ #products #unisex {
325
+ border: 2px solid #FFFBCB;
326
+ margin: 4px;
327
+ }
328
+
329
+ #products #unisex h2 {
330
+ background-color: #FFFBCB;
331
+ margin: 0px;
332
+ padding: 8px;
333
+ }
334
+
335
+ #products #unisex div.thumbnails {
336
+ padding-top: 8px;
337
+ }
338
+
339
+ div#active_product {
340
+ float:left;
341
+ width:440px;
342
+ position:relative;
343
+ height: 462px;
344
+ }
345
+
346
+ div#moving_div {
347
+ width:400px;
348
+ height: 462px;
349
+ position:absolute;
350
+ left:20px;
351
+ background-color:#ffffff;
352
+ top:4px;
353
+ }
354
+
355
+ div#moving_div div#image {
356
+ width: 400px;
357
+ height: 350px;
358
+ position: relative;
359
+ z-index: 2;
360
+ }
361
+
362
+ div#moving_div div#loading_image_icon {
363
+ position:absolute;
364
+ left: 184px;
365
+ top: 100px;
366
+ z-index: 1;
367
+ }
368
+
369
+ div#moving_div div#info {
370
+ text-align: left;
371
+ }
372
+
373
+ div#info div#name {
374
+ text-align: center;
375
+ font-size: 15px;
376
+ font-weight: bold;
377
+ }
378
+
379
+ div#info div#name span#price {
380
+ color: #DD602D;
381
+ }
382
+
383
+ div#colors {
384
+ width:400px;
385
+ }
386
+
387
+ div#colors div.label, div#sizes div.label, div#quantity div.label {
388
+ float:left;
389
+ padding: 1px 5px;
390
+ width: 66px;
391
+ text-align: right;
392
+ }
393
+
394
+ div#colors a {
395
+ display: inline-block;
396
+ line-height: 0px;
397
+ border: 2px solid #ffffff;
398
+ }
399
+
400
+ div#colors a:hover {
401
+ border: 2px solid #DBAE5E;
402
+ background-color: inherit;
403
+ }
404
+
405
+ div#colors a > img {
406
+ border: none;
407
+ }
408
+
409
+ div#colors img.swatch {
410
+ width:20px;
411
+ height:20px;
412
+ }
413
+
414
+ div#colors div.one_color {
415
+ font-style: italic;
416
+ color: #4D5453;
417
+ font-weight: bold;
418
+ font-size: 10px;
419
+ float:left;
420
+ padding-top: 2px;
421
+ }
422
+
423
+ div#colors div.multiple_colors {
424
+ float:left;
425
+ padding-top:1px;
426
+ }
427
+
428
+ div#sizes {
429
+ padding: 2px 0px;
430
+ }
431
+
432
+ div#sizes div.size_select {
433
+ float: left;
434
+ }
435
+
436
+ div#quantity {
437
+ width: 400px;
438
+ padding-top: 2px;
439
+ }
440
+
441
+ div#color_names {
442
+ padding:2px 0px 0px 5px;
443
+ }
444
+
445
+ div#color_names div.color_description {
446
+ padding-left: 10px;
447
+ }
448
+
449
+ div#moving_div div#info div#more_info {
450
+ text-align: center;
451
+ font-size: 10px;
452
+ padding-top: 2px;
453
+ }
454
+
455
+ div#moving_div div#info div#more_info a {
456
+ color: #666666;
457
+ }
458
+
459
+ div#moving_div div#info div#add_to_cart {
460
+ bottom: 35px;
461
+ position: absolute;
462
+ right: 12px;
463
+ }
464
+
465
+ div#moving_div div#info div#add_to_cart input {
466
+ border: 1px solid #000000;
467
+ cursor: pointer;
468
+ font-size: 12px;
469
+ font-weight: bold;
470
+ height: 30px;
471
+ width: 90px;
472
+ background-color: #99ff00;
473
+ }
metadata ADDED
@@ -0,0 +1,137 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cafepress_wrapper
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors: []
13
+
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-13 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ hash: 23
28
+ segments:
29
+ - 0
30
+ - 3
31
+ - 2
32
+ version: 0.3.2
33
+ requirement: *id001
34
+ type: :runtime
35
+ name: cafepress_api
36
+ prerelease: false
37
+ description: Insert CafepressWrapper description.
38
+ email:
39
+ executables: []
40
+
41
+ extensions: []
42
+
43
+ extra_rdoc_files: []
44
+
45
+ files:
46
+ - app/controllers/content_controller.rb
47
+ - app/controllers/products_controller.rb
48
+ - app/controllers/sitemap_controller.rb
49
+ - app/controllers/stores_controller.rb
50
+ - app/models/image_url.rb
51
+ - app/models/product.rb
52
+ - app/models/size.rb
53
+ - app/models/store.rb
54
+ - app/models/user_token.rb
55
+ - app/views/content/about.html.erb
56
+ - app/views/content/contact.html.erb
57
+ - app/views/layouts/cafepress_wrapper.html.erb
58
+ - app/views/products/show.rjs
59
+ - app/views/sitemap/index.xml.erb
60
+ - app/views/stores/_front_back_image.html.erb
61
+ - app/views/stores/_product_details.html.erb
62
+ - app/views/stores/feed.rss.builder
63
+ - app/views/stores/index.html.erb
64
+ - app/views/stores/show.html.erb
65
+ - lib/cafepress_wrapper.rb
66
+ - lib/db/migrate/20101103152700_create_user_tokens.rb
67
+ - lib/db/migrate/20101104032051_create_stores.rb
68
+ - lib/db/migrate/20101104032412_create_products.rb
69
+ - lib/db/migrate/20101111004355_add_description_to_store.rb
70
+ - lib/db/migrate/20101111025931_add_cafepress_design_id_to_products.rb
71
+ - lib/db/migrate/20101119163852_add_cafepress_design_url_to_stores.rb
72
+ - lib/db/migrate/20101119171328_add_design_background_color_to_stores.rb
73
+ - lib/db/migrate/20101120003908_add_cafepress_back_design_id_to_products.rb
74
+ - lib/db/migrate/20101123021036_add_cafepress_back_design_url_to_stores.rb
75
+ - lib/db/migrate/20110301072358_add_gender_to_products.rb
76
+ - lib/db/migrate/20110302191748_create_thumbnail_urls.rb
77
+ - lib/db/migrate/20110302195801_add_view_to_thumbnail_urls.rb
78
+ - lib/db/migrate/20110305004142_rename_thumbnail_urls_to_image_urls.rb
79
+ - lib/db/migrate/20110305004402_add_image_size_to_image_urls.rb
80
+ - lib/db/migrate/20110307005237_add_cafepress_merchandise_id_to_products.rb
81
+ - lib/db/migrate/20110307014703_add_default_color_id_to_products.rb
82
+ - lib/db/migrate/20110307063709_create_sizes.rb
83
+ - lib/db/migrate/20110307064131_add_default_cafepress_size_id_to_products.rb
84
+ - lib/db/migrate/20110308010304_add_title_to_stores.rb
85
+ - lib/db/migrate/20110308050955_add_price_to_products.rb
86
+ - lib/tasks/cafepress_wrapper.rake
87
+ - config/initializers/cafepress.rb
88
+ - config/routes.rb
89
+ - public/images/ajax-loader.gif
90
+ - public/images/back_bg.png
91
+ - public/images/cart.png
92
+ - public/images/fabric_bg.png
93
+ - public/images/footer_bg.png
94
+ - public/images/front_bg.png
95
+ - public/images/header_bg.png
96
+ - public/javascripts/cafepress_wrapper.js
97
+ - public/stylesheets/cafepress_wrapper.css
98
+ - MIT-LICENSE
99
+ - Rakefile
100
+ - Gemfile
101
+ - README.rdoc
102
+ has_rdoc: true
103
+ homepage:
104
+ licenses: []
105
+
106
+ post_install_message:
107
+ rdoc_options: []
108
+
109
+ require_paths:
110
+ - lib
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ none: false
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ hash: 3
117
+ segments:
118
+ - 0
119
+ version: "0"
120
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ hash: 3
126
+ segments:
127
+ - 0
128
+ version: "0"
129
+ requirements: []
130
+
131
+ rubyforge_project:
132
+ rubygems_version: 1.3.7
133
+ signing_key:
134
+ specification_version: 3
135
+ summary: Insert CafepressWrapper summary.
136
+ test_files: []
137
+