cafepress_wrapper 0.0.1

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