datashift_spree 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (619) hide show
  1. data/LICENSE.txt +27 -0
  2. data/README.markdown +81 -0
  3. data/VERSION +1 -0
  4. data/datashift_spree.gemspec +36 -0
  5. data/datashift_spree.thor +52 -0
  6. data/lib/datashift_spree.rb +118 -0
  7. data/lib/datashift_spree_helper.rb +32 -0
  8. data/lib/helpers/spree_helper.rb +74 -0
  9. data/lib/loaders/spree/image_loader.rb +74 -0
  10. data/lib/loaders/spree/product_loader.rb +359 -0
  11. data/lib/thor/spree/bootstrap_cleanup.thor +61 -0
  12. data/lib/thor/spree/products_images.thor +252 -0
  13. data/lib/thor/spree/reports.thor +56 -0
  14. data/spec/Gemfile +28 -0
  15. data/spec/Gemfile.lock +243 -0
  16. data/spec/VERSION +1 -0
  17. data/spec/fixtures/SpreeImages.xls +0 -0
  18. data/spec/fixtures/SpreeMultiVariant.csv +4 -0
  19. data/spec/fixtures/SpreeProducts.csv +4 -0
  20. data/spec/fixtures/SpreeProducts.xls +0 -0
  21. data/spec/fixtures/SpreeProductsComplexTaxons.csv +6 -0
  22. data/spec/fixtures/SpreeProductsComplexTaxons.xls +0 -0
  23. data/spec/fixtures/SpreeProductsDefaults.yml +15 -0
  24. data/spec/fixtures/SpreeProductsMandatoryOnly.xls +0 -0
  25. data/spec/fixtures/SpreeProductsMultiColumn.csv +4 -0
  26. data/spec/fixtures/SpreeProductsMultiColumn.xls +0 -0
  27. data/spec/fixtures/SpreeProductsSimple.csv +4 -0
  28. data/spec/fixtures/SpreeProductsSimple.xls +0 -0
  29. data/spec/fixtures/SpreeProductsWithImages.csv +4 -0
  30. data/spec/fixtures/SpreeProductsWithImages.xls +0 -0
  31. data/spec/fixtures/SpreeZoneExample.csv +5 -0
  32. data/spec/fixtures/SpreeZoneExample.xls +0 -0
  33. data/spec/fixtures/config/database.yml +28 -0
  34. data/spec/fixtures/images/DEMO_001_ror_bag.jpeg +0 -0
  35. data/spec/fixtures/images/DEMO_002_Powerstation.jpg +0 -0
  36. data/spec/fixtures/images/DEMO_003_ror_mug.jpeg +0 -0
  37. data/spec/fixtures/images/DEMO_004_ror_ringer.jpeg +0 -0
  38. data/spec/fixtures/negative/SpreeProdMiss1Mandatory.csv +4 -0
  39. data/spec/fixtures/negative/SpreeProdMiss1Mandatory.xls +0 -0
  40. data/spec/fixtures/negative/SpreeProdMissManyMandatory.csv +4 -0
  41. data/spec/fixtures/negative/SpreeProdMissManyMandatory.xls +0 -0
  42. data/spec/fixtures/results/taxon_and_assoc_export_spec.xls +0 -0
  43. data/spec/fixtures/results/taxon_export_spec.xls +0 -0
  44. data/spec/logs/datashift_spec.log +10166 -0
  45. data/spec/logs/spree_sandbox.log +54803 -0
  46. data/spec/sandbox/Gemfile +43 -0
  47. data/spec/sandbox/README.rdoc +261 -0
  48. data/spec/sandbox/Rakefile +7 -0
  49. data/spec/sandbox/app/assets/images/rails.png +0 -0
  50. data/spec/sandbox/app/assets/javascripts/admin/all.js +12 -0
  51. data/spec/sandbox/app/assets/javascripts/application.js +15 -0
  52. data/spec/sandbox/app/assets/javascripts/store/all.js +14 -0
  53. data/spec/sandbox/app/assets/stylesheets/admin/all.css +13 -0
  54. data/spec/sandbox/app/assets/stylesheets/application.css +13 -0
  55. data/spec/sandbox/app/assets/stylesheets/store/all.css +13 -0
  56. data/spec/sandbox/app/controllers/application_controller.rb +3 -0
  57. data/spec/sandbox/app/helpers/application_helper.rb +2 -0
  58. data/spec/sandbox/app/views/layouts/application.html.erb +14 -0
  59. data/spec/sandbox/config.ru +4 -0
  60. data/spec/sandbox/config/application.rb +75 -0
  61. data/spec/sandbox/config/boot.rb +6 -0
  62. data/spec/sandbox/config/database.yml +20 -0
  63. data/spec/sandbox/config/environment.rb +7 -0
  64. data/spec/sandbox/config/environments/development.rb +37 -0
  65. data/spec/sandbox/config/environments/production.rb +67 -0
  66. data/spec/sandbox/config/environments/test.rb +37 -0
  67. data/spec/sandbox/config/initializers/backtrace_silencers.rb +7 -0
  68. data/spec/sandbox/config/initializers/inflections.rb +15 -0
  69. data/spec/sandbox/config/initializers/mime_types.rb +5 -0
  70. data/spec/sandbox/config/initializers/secret_token.rb +7 -0
  71. data/spec/sandbox/config/initializers/session_store.rb +8 -0
  72. data/spec/sandbox/config/initializers/spree.rb +12 -0
  73. data/spec/sandbox/config/initializers/wrap_parameters.rb +14 -0
  74. data/spec/sandbox/config/locales/en.yml +5 -0
  75. data/spec/sandbox/config/routes.rb +65 -0
  76. data/spec/sandbox/config/spree.yml +2 -0
  77. data/spec/sandbox/db/development.sqlite3 +0 -0
  78. data/spec/sandbox/db/migrate/20120918081451_spree_zero_nine_zero.spree.rb +390 -0
  79. data/spec/sandbox/db/migrate/20120918081452_create_indexes_for_inventory_units.spree.rb +7 -0
  80. data/spec/sandbox/db/migrate/20120918081453_add_count_on_hand_to_variants_and_products.spree.rb +50 -0
  81. data/spec/sandbox/db/migrate/20120918081454_change_taxons_to_nested_set.spree.rb +47 -0
  82. data/spec/sandbox/db/migrate/20120918081455_move_to_configurable_gateways.spree.rb +55 -0
  83. data/spec/sandbox/db/migrate/20120918081456_add_open_id_authentication_tables.spree.rb +16 -0
  84. data/spec/sandbox/db/migrate/20120918081457_add_openid_field_to_users.spree.rb +25 -0
  85. data/spec/sandbox/db/migrate/20120918081458_change_preference_value_type.spree.rb +11 -0
  86. data/spec/sandbox/db/migrate/20120918081459_create_billing_integrations.spree.rb +13 -0
  87. data/spec/sandbox/db/migrate/20120918081460_charge_refactoring.spree.rb +40 -0
  88. data/spec/sandbox/db/migrate/20120918081461_add_some_indexes.spree.rb +12 -0
  89. data/spec/sandbox/db/migrate/20120918081462_checkout_state_machine.spree.rb +6 -0
  90. data/spec/sandbox/db/migrate/20120918081463_state_for_shipments.spree.rb +6 -0
  91. data/spec/sandbox/db/migrate/20120918081464_make_state_events_polymorphic.spree.rb +13 -0
  92. data/spec/sandbox/db/migrate/20120918081465_ship_address_id_for_checkouts.spree.rb +6 -0
  93. data/spec/sandbox/db/migrate/20120918081466_shipping_method_id_for_checkouts.spree.rb +6 -0
  94. data/spec/sandbox/db/migrate/20120918081467_creditcard_last_four_digits.spree.rb +15 -0
  95. data/spec/sandbox/db/migrate/20120918081468_populate_legacy_shipment_state.spree.rb +16 -0
  96. data/spec/sandbox/db/migrate/20120918081469_add_cost_price.spree.rb +6 -0
  97. data/spec/sandbox/db/migrate/20120918081470_shipment_id_for_inventory_units.spree.rb +26 -0
  98. data/spec/sandbox/db/migrate/20120918081471_cim_fields_for_creditcards.spree.rb +7 -0
  99. data/spec/sandbox/db/migrate/20120918081472_create_return_authorizations.spree.rb +13 -0
  100. data/spec/sandbox/db/migrate/20120918081473_add_return_authorization_to_inventory_units.spree.rb +6 -0
  101. data/spec/sandbox/db/migrate/20120918081474_create_trackers.spree.rb +11 -0
  102. data/spec/sandbox/db/migrate/20120918081475_creditcard_id_for_creditcard_txns.spree.rb +6 -0
  103. data/spec/sandbox/db/migrate/20120918081476_original_creditcard_txn_id_for_creditcard_txns.spree.rb +6 -0
  104. data/spec/sandbox/db/migrate/20120918081477_add_test_mode_to_billing_integration.spree.rb +7 -0
  105. data/spec/sandbox/db/migrate/20120918081478_create_payment_methods.spree.rb +17 -0
  106. data/spec/sandbox/db/migrate/20120918081479_polymorphic_payments.spree.rb +43 -0
  107. data/spec/sandbox/db/migrate/20120918081480_change_payments_payment_method_to_belongs_to.spree.rb +12 -0
  108. data/spec/sandbox/db/migrate/20120918081481_assign_creditcard_txns_to_payment.spree.rb +24 -0
  109. data/spec/sandbox/db/migrate/20120918081482_sti_for_transactions.spree.rb +16 -0
  110. data/spec/sandbox/db/migrate/20120918081483_drop_billing_integrations.spree.rb +17 -0
  111. data/spec/sandbox/db/migrate/20120918081484_deleted_at_for_payment_methods.spree.rb +15 -0
  112. data/spec/sandbox/db/migrate/20120918081485_add_adjustments_index.spree.rb +7 -0
  113. data/spec/sandbox/db/migrate/20120918081486_add_alt_text_to_images.spree.rb +6 -0
  114. data/spec/sandbox/db/migrate/20120918081487_fix_existing_coupon_credits.spree.rb +14 -0
  115. data/spec/sandbox/db/migrate/20120918081488_add_display_to_payment_methods.spree.rb +6 -0
  116. data/spec/sandbox/db/migrate/20120918081489_add_addresses_checkouts_indexes.spree.rb +9 -0
  117. data/spec/sandbox/db/migrate/20120918081490_add_icon_to_taxons.spree.rb +18 -0
  118. data/spec/sandbox/db/migrate/20120918081491_add_description_to_taxons.spree.rb +12 -0
  119. data/spec/sandbox/db/migrate/20120918081492_index_for_shipments_number.spree.rb +6 -0
  120. data/spec/sandbox/db/migrate/20120918081493_add_index_on_users_persistence_token.spree.rb +6 -0
  121. data/spec/sandbox/db/migrate/20120918081494_add_default_to_tax_categories.spree.rb +6 -0
  122. data/spec/sandbox/db/migrate/20120918081495_add_display_to_shipping_methods.spree.rb +6 -0
  123. data/spec/sandbox/db/migrate/20120918081496_rename_payment_method_display.spree.rb +6 -0
  124. data/spec/sandbox/db/migrate/20120918081497_rename_preferences_field.spree.rb +6 -0
  125. data/spec/sandbox/db/migrate/20120918081498_add_guest_flag.spree.rb +6 -0
  126. data/spec/sandbox/db/migrate/20120918081499_drop_order_token.spree.rb +10 -0
  127. data/spec/sandbox/db/migrate/20120918081500_payments_state_and_assigned_to_order_only.spree.rb +15 -0
  128. data/spec/sandbox/db/migrate/20120918081501_create_address_keys_for_order.spree.rb +7 -0
  129. data/spec/sandbox/db/migrate/20120918081502_payment_total_for_orders.spree.rb +6 -0
  130. data/spec/sandbox/db/migrate/20120918081503_shipping_method_id_for_orders.spree.rb +6 -0
  131. data/spec/sandbox/db/migrate/20120918081504_add_shipment_and_payment_state.spree.rb +7 -0
  132. data/spec/sandbox/db/migrate/20120918081505_refactor_adjustments.spree.rb +30 -0
  133. data/spec/sandbox/db/migrate/20120918081506_response_code_and_avs_response_for_payments.spree.rb +7 -0
  134. data/spec/sandbox/db/migrate/20120918081507_change_guest_flag_to_anonymous.spree.rb +6 -0
  135. data/spec/sandbox/db/migrate/20120918081508_email_for_orders.spree.rb +6 -0
  136. data/spec/sandbox/db/migrate/20120918081509_create_mail_methods.spree.rb +11 -0
  137. data/spec/sandbox/db/migrate/20120918081510_rename_frozen_to_locked.spree.rb +6 -0
  138. data/spec/sandbox/db/migrate/20120918081511_move_special_instructions_to_orders.spree.rb +11 -0
  139. data/spec/sandbox/db/migrate/20120918081512_create_log_entries.spree.rb +12 -0
  140. data/spec/sandbox/db/migrate/20120918081513_migrate_transactions_to_payment_state.spree.rb +99 -0
  141. data/spec/sandbox/db/migrate/20120918081514_delete_in_progress_orders.spree.rb +20 -0
  142. data/spec/sandbox/db/migrate/20120918081515_migrate_checkout_to_orders.spree.rb +24 -0
  143. data/spec/sandbox/db/migrate/20120918081516_remove_shipped_state.spree.rb +13 -0
  144. data/spec/sandbox/db/migrate/20120918081517_prevent_nil_payment_total.spree.rb +9 -0
  145. data/spec/sandbox/db/migrate/20120918081518_prevent_nil_email.spree.rb +10 -0
  146. data/spec/sandbox/db/migrate/20120918081519_generate_anonymous_users.spree.rb +21 -0
  147. data/spec/sandbox/db/migrate/20120918081520_update_order_state.spree.rb +13 -0
  148. data/spec/sandbox/db/migrate/20120918081521_cleanup_legacy_tables.spree.rb +12 -0
  149. data/spec/sandbox/db/migrate/20120918081522_remove_number_and_cvv_from_credicard.spree.rb +12 -0
  150. data/spec/sandbox/db/migrate/20120918081523_drop_anonymous_field_for_user.spree.rb +10 -0
  151. data/spec/sandbox/db/migrate/20120918081524_renamed_rma_cancelled_state.spree.rb +10 -0
  152. data/spec/sandbox/db/migrate/20120918081525_fix_problematic_index_names.spree.rb +14 -0
  153. data/spec/sandbox/db/migrate/20120918081526_add_position_to_variants.spree.rb +6 -0
  154. data/spec/sandbox/db/migrate/20120918081527_add_next_state_to_state_events.spree.rb +6 -0
  155. data/spec/sandbox/db/migrate/20120918081528_add_position_to_option_types.spree.rb +6 -0
  156. data/spec/sandbox/db/migrate/20120918081529_remove_trailing_slashes_in_taxon_permalinks.spree.rb +20 -0
  157. data/spec/sandbox/db/migrate/20120918081530_create_activators.spree.rb +15 -0
  158. data/spec/sandbox/db/migrate/20120918081531_eligible_for_adjustments.spree.rb +6 -0
  159. data/spec/sandbox/db/migrate/20120918081532_namespace_top_level_models.spree.rb +50 -0
  160. data/spec/sandbox/db/migrate/20120918081533_migrate_namespaced_polymorphic_models.spree.rb +53 -0
  161. data/spec/sandbox/db/migrate/20120918081534_make_adjustments_polymorphic.spree.rb +10 -0
  162. data/spec/sandbox/db/migrate/20120918081535_add_company_to_addresses.spree.rb +6 -0
  163. data/spec/sandbox/db/migrate/20120918081536_add_inc_tax_to_tax_rates.spree.rb +6 -0
  164. data/spec/sandbox/db/migrate/20120918081537_rename_inc_price_attribute.spree.rb +6 -0
  165. data/spec/sandbox/db/migrate/20120918081538_add_default_tax_zone.spree.rb +6 -0
  166. data/spec/sandbox/db/migrate/20120918081539_associate_shipping_methods_and_shipping_categories.spree.rb +8 -0
  167. data/spec/sandbox/db/migrate/20120918081540_add_match_rules_to_shipping_methods.spree.rb +8 -0
  168. data/spec/sandbox/db/migrate/20120918081541_new_preferences.spree.rb +49 -0
  169. data/spec/sandbox/db/migrate/20120918081542_rename_state_events_to_state_changes.spree.rb +10 -0
  170. data/spec/sandbox/db/migrate/20120918081543_add_deleted_at_to_tax_category.spree.rb +6 -0
  171. data/spec/sandbox/db/migrate/20120918081544_migrate_images_from_products_to_variants.spree.rb +36 -0
  172. data/spec/sandbox/db/migrate/20120918081545_rename_attachment_size_to_attachment_file_size.spree.rb +6 -0
  173. data/spec/sandbox/db/migrate/20120918081546_increase_scale_of_tax_rate_amount.spree.rb +10 -0
  174. data/spec/sandbox/db/migrate/20120918081547_convert_sales_tax_to_default_tax.spree.rb +10 -0
  175. data/spec/sandbox/db/migrate/20120918081548_add_deleted_at_to_spree_shipping_methods.spree.rb +6 -0
  176. data/spec/sandbox/db/migrate/20120918081549_make_users_email_index_unique.spree.rb +11 -0
  177. data/spec/sandbox/db/migrate/20120918081550_add_counter_cache_to_zone_members.spree.rb +15 -0
  178. data/spec/sandbox/db/migrate/20120918081551_rename_columns_for_devise.spree_auth.rb +39 -0
  179. data/spec/sandbox/db/migrate/20120918081552_convert_user_remember_field.spree_auth.rb +12 -0
  180. data/spec/sandbox/db/migrate/20120918081553_create_tokenized_permissions.spree_auth.rb +14 -0
  181. data/spec/sandbox/db/migrate/20120918081554_tokens_for_legacy_orders.spree_auth.rb +19 -0
  182. data/spec/sandbox/db/migrate/20120918081555_namespace_tokenized_permission.spree_auth.rb +6 -0
  183. data/spec/sandbox/db/migrate/20120918081556_migrate_tokenized_permissions.spree_auth.rb +25 -0
  184. data/spec/sandbox/db/migrate/20120918081557_add_reset_password_sent_at_to_spree_users.spree_auth.rb +6 -0
  185. data/spec/sandbox/db/migrate/20120918081558_add_api_key_to_spree_users.spree_api.rb +6 -0
  186. data/spec/sandbox/db/migrate/20120918081559_resize_api_key_field.spree_api.rb +6 -0
  187. data/spec/sandbox/db/migrate/20120918081560_rename_coupons_to_promotions.spree_promo.rb +11 -0
  188. data/spec/sandbox/db/migrate/20120918081561_create_promotion_rules.spree_promo.rb +25 -0
  189. data/spec/sandbox/db/migrate/20120918081562_match_policy_for_promotions.spree_promo.rb +6 -0
  190. data/spec/sandbox/db/migrate/20120918081563_create_promotion_rules_users.spree_promo.rb +15 -0
  191. data/spec/sandbox/db/migrate/20120918081564_name_for_promotions.spree_promo.rb +6 -0
  192. data/spec/sandbox/db/migrate/20120918081565_update_calculable_type_for_promotions.spree_promo.rb +10 -0
  193. data/spec/sandbox/db/migrate/20120918081566_migrate_adjustments.spree_promo.rb +10 -0
  194. data/spec/sandbox/db/migrate/20120918081567_promotion_changes_to_subclass_of_activator.spree_promo.rb +23 -0
  195. data/spec/sandbox/db/migrate/20120918081568_create_promotion_actions.spree_promo.rb +10 -0
  196. data/spec/sandbox/db/migrate/20120918081569_create_promotion_action_line_items.spree_promo.rb +11 -0
  197. data/spec/sandbox/db/migrate/20120918081570_namespace_promo_tables.spree_promo.rb +86 -0
  198. data/spec/sandbox/db/migrate/20120918081571_create_spree_pending_promotions.spree_promo.rb +12 -0
  199. data/spec/sandbox/db/migrate/20120918081572_content_visited_event.spree_promo.rb +30 -0
  200. data/spec/sandbox/db/production.sqlite3 +0 -0
  201. data/spec/sandbox/db/schema.rb +586 -0
  202. data/spec/sandbox/db/seeds.rb +11 -0
  203. data/spec/sandbox/db/test.sqlite3 +0 -0
  204. data/spec/sandbox/doc/README_FOR_APP +2 -0
  205. data/spec/sandbox/log/development.log +4856 -0
  206. data/spec/sandbox/log/production.log +31 -0
  207. data/spec/sandbox/public/404.html +26 -0
  208. data/spec/sandbox/public/422.html +26 -0
  209. data/spec/sandbox/public/500.html +25 -0
  210. data/spec/sandbox/public/assets/rails-be8732dac73d845ac5b142c8fb5f9fb0.png +0 -0
  211. data/spec/sandbox/public/favicon.ico +0 -0
  212. data/spec/sandbox/public/robots.txt +14 -0
  213. data/spec/sandbox/public/spree/products/1/large/DEMO_001_ror_bag.jpeg +0 -0
  214. data/spec/sandbox/public/spree/products/1/mini/DEMO_001_ror_bag.jpeg +0 -0
  215. data/spec/sandbox/public/spree/products/1/original/DEMO_001_ror_bag.jpeg +0 -0
  216. data/spec/sandbox/public/spree/products/1/product/DEMO_001_ror_bag.jpeg +0 -0
  217. data/spec/sandbox/public/spree/products/1/small/DEMO_001_ror_bag.jpeg +0 -0
  218. data/spec/sandbox/public/spree/products/10/large/DEMO_001_ror_bag.jpeg +0 -0
  219. data/spec/sandbox/public/spree/products/10/mini/DEMO_001_ror_bag.jpeg +0 -0
  220. data/spec/sandbox/public/spree/products/10/original/DEMO_001_ror_bag.jpeg +0 -0
  221. data/spec/sandbox/public/spree/products/10/product/DEMO_001_ror_bag.jpeg +0 -0
  222. data/spec/sandbox/public/spree/products/10/small/DEMO_001_ror_bag.jpeg +0 -0
  223. data/spec/sandbox/public/spree/products/11/large/DEMO_002_Powerstation.jpg +0 -0
  224. data/spec/sandbox/public/spree/products/11/mini/DEMO_002_Powerstation.jpg +0 -0
  225. data/spec/sandbox/public/spree/products/11/original/DEMO_002_Powerstation.jpg +0 -0
  226. data/spec/sandbox/public/spree/products/11/product/DEMO_002_Powerstation.jpg +0 -0
  227. data/spec/sandbox/public/spree/products/11/small/DEMO_002_Powerstation.jpg +0 -0
  228. data/spec/sandbox/public/spree/products/12/large/DEMO_003_ror_mug.jpeg +0 -0
  229. data/spec/sandbox/public/spree/products/12/mini/DEMO_003_ror_mug.jpeg +0 -0
  230. data/spec/sandbox/public/spree/products/12/original/DEMO_003_ror_mug.jpeg +0 -0
  231. data/spec/sandbox/public/spree/products/12/product/DEMO_003_ror_mug.jpeg +0 -0
  232. data/spec/sandbox/public/spree/products/12/small/DEMO_003_ror_mug.jpeg +0 -0
  233. data/spec/sandbox/public/spree/products/13/large/DEMO_001_ror_bag.jpeg +0 -0
  234. data/spec/sandbox/public/spree/products/13/mini/DEMO_001_ror_bag.jpeg +0 -0
  235. data/spec/sandbox/public/spree/products/13/original/DEMO_001_ror_bag.jpeg +0 -0
  236. data/spec/sandbox/public/spree/products/13/product/DEMO_001_ror_bag.jpeg +0 -0
  237. data/spec/sandbox/public/spree/products/13/small/DEMO_001_ror_bag.jpeg +0 -0
  238. data/spec/sandbox/public/spree/products/14/large/DEMO_002_Powerstation.jpg +0 -0
  239. data/spec/sandbox/public/spree/products/14/mini/DEMO_002_Powerstation.jpg +0 -0
  240. data/spec/sandbox/public/spree/products/14/original/DEMO_002_Powerstation.jpg +0 -0
  241. data/spec/sandbox/public/spree/products/14/product/DEMO_002_Powerstation.jpg +0 -0
  242. data/spec/sandbox/public/spree/products/14/small/DEMO_002_Powerstation.jpg +0 -0
  243. data/spec/sandbox/public/spree/products/15/large/DEMO_003_ror_mug.jpeg +0 -0
  244. data/spec/sandbox/public/spree/products/15/mini/DEMO_003_ror_mug.jpeg +0 -0
  245. data/spec/sandbox/public/spree/products/15/original/DEMO_003_ror_mug.jpeg +0 -0
  246. data/spec/sandbox/public/spree/products/15/product/DEMO_003_ror_mug.jpeg +0 -0
  247. data/spec/sandbox/public/spree/products/15/small/DEMO_003_ror_mug.jpeg +0 -0
  248. data/spec/sandbox/public/spree/products/16/large/DEMO_001_ror_bag.jpeg +0 -0
  249. data/spec/sandbox/public/spree/products/16/mini/DEMO_001_ror_bag.jpeg +0 -0
  250. data/spec/sandbox/public/spree/products/16/original/DEMO_001_ror_bag.jpeg +0 -0
  251. data/spec/sandbox/public/spree/products/16/product/DEMO_001_ror_bag.jpeg +0 -0
  252. data/spec/sandbox/public/spree/products/16/small/DEMO_001_ror_bag.jpeg +0 -0
  253. data/spec/sandbox/public/spree/products/17/large/DEMO_002_Powerstation.jpg +0 -0
  254. data/spec/sandbox/public/spree/products/17/mini/DEMO_002_Powerstation.jpg +0 -0
  255. data/spec/sandbox/public/spree/products/17/original/DEMO_002_Powerstation.jpg +0 -0
  256. data/spec/sandbox/public/spree/products/17/product/DEMO_002_Powerstation.jpg +0 -0
  257. data/spec/sandbox/public/spree/products/17/small/DEMO_002_Powerstation.jpg +0 -0
  258. data/spec/sandbox/public/spree/products/18/large/DEMO_003_ror_mug.jpeg +0 -0
  259. data/spec/sandbox/public/spree/products/18/mini/DEMO_003_ror_mug.jpeg +0 -0
  260. data/spec/sandbox/public/spree/products/18/original/DEMO_003_ror_mug.jpeg +0 -0
  261. data/spec/sandbox/public/spree/products/18/product/DEMO_003_ror_mug.jpeg +0 -0
  262. data/spec/sandbox/public/spree/products/18/small/DEMO_003_ror_mug.jpeg +0 -0
  263. data/spec/sandbox/public/spree/products/19/large/DEMO_001_ror_bag.jpeg +0 -0
  264. data/spec/sandbox/public/spree/products/19/mini/DEMO_001_ror_bag.jpeg +0 -0
  265. data/spec/sandbox/public/spree/products/19/original/DEMO_001_ror_bag.jpeg +0 -0
  266. data/spec/sandbox/public/spree/products/19/product/DEMO_001_ror_bag.jpeg +0 -0
  267. data/spec/sandbox/public/spree/products/19/small/DEMO_001_ror_bag.jpeg +0 -0
  268. data/spec/sandbox/public/spree/products/2/large/DEMO_002_Powerstation.jpg +0 -0
  269. data/spec/sandbox/public/spree/products/2/mini/DEMO_002_Powerstation.jpg +0 -0
  270. data/spec/sandbox/public/spree/products/2/original/DEMO_002_Powerstation.jpg +0 -0
  271. data/spec/sandbox/public/spree/products/2/product/DEMO_002_Powerstation.jpg +0 -0
  272. data/spec/sandbox/public/spree/products/2/small/DEMO_002_Powerstation.jpg +0 -0
  273. data/spec/sandbox/public/spree/products/20/large/DEMO_002_Powerstation.jpg +0 -0
  274. data/spec/sandbox/public/spree/products/20/mini/DEMO_002_Powerstation.jpg +0 -0
  275. data/spec/sandbox/public/spree/products/20/original/DEMO_002_Powerstation.jpg +0 -0
  276. data/spec/sandbox/public/spree/products/20/product/DEMO_002_Powerstation.jpg +0 -0
  277. data/spec/sandbox/public/spree/products/20/small/DEMO_002_Powerstation.jpg +0 -0
  278. data/spec/sandbox/public/spree/products/21/large/DEMO_003_ror_mug.jpeg +0 -0
  279. data/spec/sandbox/public/spree/products/21/mini/DEMO_003_ror_mug.jpeg +0 -0
  280. data/spec/sandbox/public/spree/products/21/original/DEMO_003_ror_mug.jpeg +0 -0
  281. data/spec/sandbox/public/spree/products/21/product/DEMO_003_ror_mug.jpeg +0 -0
  282. data/spec/sandbox/public/spree/products/21/small/DEMO_003_ror_mug.jpeg +0 -0
  283. data/spec/sandbox/public/spree/products/22/large/DEMO_001_ror_bag.jpeg +0 -0
  284. data/spec/sandbox/public/spree/products/22/mini/DEMO_001_ror_bag.jpeg +0 -0
  285. data/spec/sandbox/public/spree/products/22/original/DEMO_001_ror_bag.jpeg +0 -0
  286. data/spec/sandbox/public/spree/products/22/product/DEMO_001_ror_bag.jpeg +0 -0
  287. data/spec/sandbox/public/spree/products/22/small/DEMO_001_ror_bag.jpeg +0 -0
  288. data/spec/sandbox/public/spree/products/23/large/DEMO_002_Powerstation.jpg +0 -0
  289. data/spec/sandbox/public/spree/products/23/mini/DEMO_002_Powerstation.jpg +0 -0
  290. data/spec/sandbox/public/spree/products/23/original/DEMO_002_Powerstation.jpg +0 -0
  291. data/spec/sandbox/public/spree/products/23/product/DEMO_002_Powerstation.jpg +0 -0
  292. data/spec/sandbox/public/spree/products/23/small/DEMO_002_Powerstation.jpg +0 -0
  293. data/spec/sandbox/public/spree/products/24/large/DEMO_003_ror_mug.jpeg +0 -0
  294. data/spec/sandbox/public/spree/products/24/mini/DEMO_003_ror_mug.jpeg +0 -0
  295. data/spec/sandbox/public/spree/products/24/original/DEMO_003_ror_mug.jpeg +0 -0
  296. data/spec/sandbox/public/spree/products/24/product/DEMO_003_ror_mug.jpeg +0 -0
  297. data/spec/sandbox/public/spree/products/24/small/DEMO_003_ror_mug.jpeg +0 -0
  298. data/spec/sandbox/public/spree/products/25/large/DEMO_001_ror_bag.jpeg +0 -0
  299. data/spec/sandbox/public/spree/products/25/mini/DEMO_001_ror_bag.jpeg +0 -0
  300. data/spec/sandbox/public/spree/products/25/original/DEMO_001_ror_bag.jpeg +0 -0
  301. data/spec/sandbox/public/spree/products/25/product/DEMO_001_ror_bag.jpeg +0 -0
  302. data/spec/sandbox/public/spree/products/25/small/DEMO_001_ror_bag.jpeg +0 -0
  303. data/spec/sandbox/public/spree/products/26/large/DEMO_002_Powerstation.jpg +0 -0
  304. data/spec/sandbox/public/spree/products/26/mini/DEMO_002_Powerstation.jpg +0 -0
  305. data/spec/sandbox/public/spree/products/26/original/DEMO_002_Powerstation.jpg +0 -0
  306. data/spec/sandbox/public/spree/products/26/product/DEMO_002_Powerstation.jpg +0 -0
  307. data/spec/sandbox/public/spree/products/26/small/DEMO_002_Powerstation.jpg +0 -0
  308. data/spec/sandbox/public/spree/products/27/large/DEMO_003_ror_mug.jpeg +0 -0
  309. data/spec/sandbox/public/spree/products/27/mini/DEMO_003_ror_mug.jpeg +0 -0
  310. data/spec/sandbox/public/spree/products/27/original/DEMO_003_ror_mug.jpeg +0 -0
  311. data/spec/sandbox/public/spree/products/27/product/DEMO_003_ror_mug.jpeg +0 -0
  312. data/spec/sandbox/public/spree/products/27/small/DEMO_003_ror_mug.jpeg +0 -0
  313. data/spec/sandbox/public/spree/products/28/large/DEMO_001_ror_bag.jpeg +0 -0
  314. data/spec/sandbox/public/spree/products/28/mini/DEMO_001_ror_bag.jpeg +0 -0
  315. data/spec/sandbox/public/spree/products/28/original/DEMO_001_ror_bag.jpeg +0 -0
  316. data/spec/sandbox/public/spree/products/28/product/DEMO_001_ror_bag.jpeg +0 -0
  317. data/spec/sandbox/public/spree/products/28/small/DEMO_001_ror_bag.jpeg +0 -0
  318. data/spec/sandbox/public/spree/products/29/large/DEMO_002_Powerstation.jpg +0 -0
  319. data/spec/sandbox/public/spree/products/29/mini/DEMO_002_Powerstation.jpg +0 -0
  320. data/spec/sandbox/public/spree/products/29/original/DEMO_002_Powerstation.jpg +0 -0
  321. data/spec/sandbox/public/spree/products/29/product/DEMO_002_Powerstation.jpg +0 -0
  322. data/spec/sandbox/public/spree/products/29/small/DEMO_002_Powerstation.jpg +0 -0
  323. data/spec/sandbox/public/spree/products/3/large/DEMO_003_ror_mug.jpeg +0 -0
  324. data/spec/sandbox/public/spree/products/3/mini/DEMO_003_ror_mug.jpeg +0 -0
  325. data/spec/sandbox/public/spree/products/3/original/DEMO_003_ror_mug.jpeg +0 -0
  326. data/spec/sandbox/public/spree/products/3/product/DEMO_003_ror_mug.jpeg +0 -0
  327. data/spec/sandbox/public/spree/products/3/small/DEMO_003_ror_mug.jpeg +0 -0
  328. data/spec/sandbox/public/spree/products/30/large/DEMO_003_ror_mug.jpeg +0 -0
  329. data/spec/sandbox/public/spree/products/30/mini/DEMO_003_ror_mug.jpeg +0 -0
  330. data/spec/sandbox/public/spree/products/30/original/DEMO_003_ror_mug.jpeg +0 -0
  331. data/spec/sandbox/public/spree/products/30/product/DEMO_003_ror_mug.jpeg +0 -0
  332. data/spec/sandbox/public/spree/products/30/small/DEMO_003_ror_mug.jpeg +0 -0
  333. data/spec/sandbox/public/spree/products/31/large/DEMO_001_ror_bag.jpeg +0 -0
  334. data/spec/sandbox/public/spree/products/31/mini/DEMO_001_ror_bag.jpeg +0 -0
  335. data/spec/sandbox/public/spree/products/31/original/DEMO_001_ror_bag.jpeg +0 -0
  336. data/spec/sandbox/public/spree/products/31/product/DEMO_001_ror_bag.jpeg +0 -0
  337. data/spec/sandbox/public/spree/products/31/small/DEMO_001_ror_bag.jpeg +0 -0
  338. data/spec/sandbox/public/spree/products/32/large/DEMO_002_Powerstation.jpg +0 -0
  339. data/spec/sandbox/public/spree/products/32/mini/DEMO_002_Powerstation.jpg +0 -0
  340. data/spec/sandbox/public/spree/products/32/original/DEMO_002_Powerstation.jpg +0 -0
  341. data/spec/sandbox/public/spree/products/32/product/DEMO_002_Powerstation.jpg +0 -0
  342. data/spec/sandbox/public/spree/products/32/small/DEMO_002_Powerstation.jpg +0 -0
  343. data/spec/sandbox/public/spree/products/33/large/DEMO_003_ror_mug.jpeg +0 -0
  344. data/spec/sandbox/public/spree/products/33/mini/DEMO_003_ror_mug.jpeg +0 -0
  345. data/spec/sandbox/public/spree/products/33/original/DEMO_003_ror_mug.jpeg +0 -0
  346. data/spec/sandbox/public/spree/products/33/product/DEMO_003_ror_mug.jpeg +0 -0
  347. data/spec/sandbox/public/spree/products/33/small/DEMO_003_ror_mug.jpeg +0 -0
  348. data/spec/sandbox/public/spree/products/34/large/DEMO_001_ror_bag.jpeg +0 -0
  349. data/spec/sandbox/public/spree/products/34/mini/DEMO_001_ror_bag.jpeg +0 -0
  350. data/spec/sandbox/public/spree/products/34/original/DEMO_001_ror_bag.jpeg +0 -0
  351. data/spec/sandbox/public/spree/products/34/product/DEMO_001_ror_bag.jpeg +0 -0
  352. data/spec/sandbox/public/spree/products/34/small/DEMO_001_ror_bag.jpeg +0 -0
  353. data/spec/sandbox/public/spree/products/35/large/DEMO_002_Powerstation.jpg +0 -0
  354. data/spec/sandbox/public/spree/products/35/mini/DEMO_002_Powerstation.jpg +0 -0
  355. data/spec/sandbox/public/spree/products/35/original/DEMO_002_Powerstation.jpg +0 -0
  356. data/spec/sandbox/public/spree/products/35/product/DEMO_002_Powerstation.jpg +0 -0
  357. data/spec/sandbox/public/spree/products/35/small/DEMO_002_Powerstation.jpg +0 -0
  358. data/spec/sandbox/public/spree/products/36/large/DEMO_003_ror_mug.jpeg +0 -0
  359. data/spec/sandbox/public/spree/products/36/mini/DEMO_003_ror_mug.jpeg +0 -0
  360. data/spec/sandbox/public/spree/products/36/original/DEMO_003_ror_mug.jpeg +0 -0
  361. data/spec/sandbox/public/spree/products/36/product/DEMO_003_ror_mug.jpeg +0 -0
  362. data/spec/sandbox/public/spree/products/36/small/DEMO_003_ror_mug.jpeg +0 -0
  363. data/spec/sandbox/public/spree/products/37/large/DEMO_001_ror_bag.jpeg +0 -0
  364. data/spec/sandbox/public/spree/products/37/mini/DEMO_001_ror_bag.jpeg +0 -0
  365. data/spec/sandbox/public/spree/products/37/original/DEMO_001_ror_bag.jpeg +0 -0
  366. data/spec/sandbox/public/spree/products/37/product/DEMO_001_ror_bag.jpeg +0 -0
  367. data/spec/sandbox/public/spree/products/37/small/DEMO_001_ror_bag.jpeg +0 -0
  368. data/spec/sandbox/public/spree/products/38/large/DEMO_002_Powerstation.jpg +0 -0
  369. data/spec/sandbox/public/spree/products/38/mini/DEMO_002_Powerstation.jpg +0 -0
  370. data/spec/sandbox/public/spree/products/38/original/DEMO_002_Powerstation.jpg +0 -0
  371. data/spec/sandbox/public/spree/products/38/product/DEMO_002_Powerstation.jpg +0 -0
  372. data/spec/sandbox/public/spree/products/38/small/DEMO_002_Powerstation.jpg +0 -0
  373. data/spec/sandbox/public/spree/products/39/large/DEMO_003_ror_mug.jpeg +0 -0
  374. data/spec/sandbox/public/spree/products/39/mini/DEMO_003_ror_mug.jpeg +0 -0
  375. data/spec/sandbox/public/spree/products/39/original/DEMO_003_ror_mug.jpeg +0 -0
  376. data/spec/sandbox/public/spree/products/39/product/DEMO_003_ror_mug.jpeg +0 -0
  377. data/spec/sandbox/public/spree/products/39/small/DEMO_003_ror_mug.jpeg +0 -0
  378. data/spec/sandbox/public/spree/products/4/large/DEMO_001_ror_bag.jpeg +0 -0
  379. data/spec/sandbox/public/spree/products/4/mini/DEMO_001_ror_bag.jpeg +0 -0
  380. data/spec/sandbox/public/spree/products/4/original/DEMO_001_ror_bag.jpeg +0 -0
  381. data/spec/sandbox/public/spree/products/4/product/DEMO_001_ror_bag.jpeg +0 -0
  382. data/spec/sandbox/public/spree/products/4/small/DEMO_001_ror_bag.jpeg +0 -0
  383. data/spec/sandbox/public/spree/products/40/large/DEMO_001_ror_bag.jpeg +0 -0
  384. data/spec/sandbox/public/spree/products/40/mini/DEMO_001_ror_bag.jpeg +0 -0
  385. data/spec/sandbox/public/spree/products/40/original/DEMO_001_ror_bag.jpeg +0 -0
  386. data/spec/sandbox/public/spree/products/40/product/DEMO_001_ror_bag.jpeg +0 -0
  387. data/spec/sandbox/public/spree/products/40/small/DEMO_001_ror_bag.jpeg +0 -0
  388. data/spec/sandbox/public/spree/products/41/large/DEMO_002_Powerstation.jpg +0 -0
  389. data/spec/sandbox/public/spree/products/41/mini/DEMO_002_Powerstation.jpg +0 -0
  390. data/spec/sandbox/public/spree/products/41/original/DEMO_002_Powerstation.jpg +0 -0
  391. data/spec/sandbox/public/spree/products/41/product/DEMO_002_Powerstation.jpg +0 -0
  392. data/spec/sandbox/public/spree/products/41/small/DEMO_002_Powerstation.jpg +0 -0
  393. data/spec/sandbox/public/spree/products/42/large/DEMO_003_ror_mug.jpeg +0 -0
  394. data/spec/sandbox/public/spree/products/42/mini/DEMO_003_ror_mug.jpeg +0 -0
  395. data/spec/sandbox/public/spree/products/42/original/DEMO_003_ror_mug.jpeg +0 -0
  396. data/spec/sandbox/public/spree/products/42/product/DEMO_003_ror_mug.jpeg +0 -0
  397. data/spec/sandbox/public/spree/products/42/small/DEMO_003_ror_mug.jpeg +0 -0
  398. data/spec/sandbox/public/spree/products/43/large/DEMO_001_ror_bag.jpeg +0 -0
  399. data/spec/sandbox/public/spree/products/43/mini/DEMO_001_ror_bag.jpeg +0 -0
  400. data/spec/sandbox/public/spree/products/43/original/DEMO_001_ror_bag.jpeg +0 -0
  401. data/spec/sandbox/public/spree/products/43/product/DEMO_001_ror_bag.jpeg +0 -0
  402. data/spec/sandbox/public/spree/products/43/small/DEMO_001_ror_bag.jpeg +0 -0
  403. data/spec/sandbox/public/spree/products/44/large/DEMO_002_Powerstation.jpg +0 -0
  404. data/spec/sandbox/public/spree/products/44/mini/DEMO_002_Powerstation.jpg +0 -0
  405. data/spec/sandbox/public/spree/products/44/original/DEMO_002_Powerstation.jpg +0 -0
  406. data/spec/sandbox/public/spree/products/44/product/DEMO_002_Powerstation.jpg +0 -0
  407. data/spec/sandbox/public/spree/products/44/small/DEMO_002_Powerstation.jpg +0 -0
  408. data/spec/sandbox/public/spree/products/45/large/DEMO_003_ror_mug.jpeg +0 -0
  409. data/spec/sandbox/public/spree/products/45/mini/DEMO_003_ror_mug.jpeg +0 -0
  410. data/spec/sandbox/public/spree/products/45/original/DEMO_003_ror_mug.jpeg +0 -0
  411. data/spec/sandbox/public/spree/products/45/product/DEMO_003_ror_mug.jpeg +0 -0
  412. data/spec/sandbox/public/spree/products/45/small/DEMO_003_ror_mug.jpeg +0 -0
  413. data/spec/sandbox/public/spree/products/46/large/DEMO_001_ror_bag.jpeg +0 -0
  414. data/spec/sandbox/public/spree/products/46/mini/DEMO_001_ror_bag.jpeg +0 -0
  415. data/spec/sandbox/public/spree/products/46/original/DEMO_001_ror_bag.jpeg +0 -0
  416. data/spec/sandbox/public/spree/products/46/product/DEMO_001_ror_bag.jpeg +0 -0
  417. data/spec/sandbox/public/spree/products/46/small/DEMO_001_ror_bag.jpeg +0 -0
  418. data/spec/sandbox/public/spree/products/47/large/DEMO_002_Powerstation.jpg +0 -0
  419. data/spec/sandbox/public/spree/products/47/mini/DEMO_002_Powerstation.jpg +0 -0
  420. data/spec/sandbox/public/spree/products/47/original/DEMO_002_Powerstation.jpg +0 -0
  421. data/spec/sandbox/public/spree/products/47/product/DEMO_002_Powerstation.jpg +0 -0
  422. data/spec/sandbox/public/spree/products/47/small/DEMO_002_Powerstation.jpg +0 -0
  423. data/spec/sandbox/public/spree/products/48/large/DEMO_003_ror_mug.jpeg +0 -0
  424. data/spec/sandbox/public/spree/products/48/mini/DEMO_003_ror_mug.jpeg +0 -0
  425. data/spec/sandbox/public/spree/products/48/original/DEMO_003_ror_mug.jpeg +0 -0
  426. data/spec/sandbox/public/spree/products/48/product/DEMO_003_ror_mug.jpeg +0 -0
  427. data/spec/sandbox/public/spree/products/48/small/DEMO_003_ror_mug.jpeg +0 -0
  428. data/spec/sandbox/public/spree/products/49/large/DEMO_001_ror_bag.jpeg +0 -0
  429. data/spec/sandbox/public/spree/products/49/mini/DEMO_001_ror_bag.jpeg +0 -0
  430. data/spec/sandbox/public/spree/products/49/original/DEMO_001_ror_bag.jpeg +0 -0
  431. data/spec/sandbox/public/spree/products/49/product/DEMO_001_ror_bag.jpeg +0 -0
  432. data/spec/sandbox/public/spree/products/49/small/DEMO_001_ror_bag.jpeg +0 -0
  433. data/spec/sandbox/public/spree/products/5/large/DEMO_002_Powerstation.jpg +0 -0
  434. data/spec/sandbox/public/spree/products/5/mini/DEMO_002_Powerstation.jpg +0 -0
  435. data/spec/sandbox/public/spree/products/5/original/DEMO_002_Powerstation.jpg +0 -0
  436. data/spec/sandbox/public/spree/products/5/product/DEMO_002_Powerstation.jpg +0 -0
  437. data/spec/sandbox/public/spree/products/5/small/DEMO_002_Powerstation.jpg +0 -0
  438. data/spec/sandbox/public/spree/products/50/large/DEMO_002_Powerstation.jpg +0 -0
  439. data/spec/sandbox/public/spree/products/50/mini/DEMO_002_Powerstation.jpg +0 -0
  440. data/spec/sandbox/public/spree/products/50/original/DEMO_002_Powerstation.jpg +0 -0
  441. data/spec/sandbox/public/spree/products/50/product/DEMO_002_Powerstation.jpg +0 -0
  442. data/spec/sandbox/public/spree/products/50/small/DEMO_002_Powerstation.jpg +0 -0
  443. data/spec/sandbox/public/spree/products/51/large/DEMO_003_ror_mug.jpeg +0 -0
  444. data/spec/sandbox/public/spree/products/51/mini/DEMO_003_ror_mug.jpeg +0 -0
  445. data/spec/sandbox/public/spree/products/51/original/DEMO_003_ror_mug.jpeg +0 -0
  446. data/spec/sandbox/public/spree/products/51/product/DEMO_003_ror_mug.jpeg +0 -0
  447. data/spec/sandbox/public/spree/products/51/small/DEMO_003_ror_mug.jpeg +0 -0
  448. data/spec/sandbox/public/spree/products/52/large/DEMO_001_ror_bag.jpeg +0 -0
  449. data/spec/sandbox/public/spree/products/52/mini/DEMO_001_ror_bag.jpeg +0 -0
  450. data/spec/sandbox/public/spree/products/52/original/DEMO_001_ror_bag.jpeg +0 -0
  451. data/spec/sandbox/public/spree/products/52/product/DEMO_001_ror_bag.jpeg +0 -0
  452. data/spec/sandbox/public/spree/products/52/small/DEMO_001_ror_bag.jpeg +0 -0
  453. data/spec/sandbox/public/spree/products/53/large/DEMO_002_Powerstation.jpg +0 -0
  454. data/spec/sandbox/public/spree/products/53/mini/DEMO_002_Powerstation.jpg +0 -0
  455. data/spec/sandbox/public/spree/products/53/original/DEMO_002_Powerstation.jpg +0 -0
  456. data/spec/sandbox/public/spree/products/53/product/DEMO_002_Powerstation.jpg +0 -0
  457. data/spec/sandbox/public/spree/products/53/small/DEMO_002_Powerstation.jpg +0 -0
  458. data/spec/sandbox/public/spree/products/54/large/DEMO_003_ror_mug.jpeg +0 -0
  459. data/spec/sandbox/public/spree/products/54/mini/DEMO_003_ror_mug.jpeg +0 -0
  460. data/spec/sandbox/public/spree/products/54/original/DEMO_003_ror_mug.jpeg +0 -0
  461. data/spec/sandbox/public/spree/products/54/product/DEMO_003_ror_mug.jpeg +0 -0
  462. data/spec/sandbox/public/spree/products/54/small/DEMO_003_ror_mug.jpeg +0 -0
  463. data/spec/sandbox/public/spree/products/55/large/DEMO_001_ror_bag.jpeg +0 -0
  464. data/spec/sandbox/public/spree/products/55/mini/DEMO_001_ror_bag.jpeg +0 -0
  465. data/spec/sandbox/public/spree/products/55/original/DEMO_001_ror_bag.jpeg +0 -0
  466. data/spec/sandbox/public/spree/products/55/product/DEMO_001_ror_bag.jpeg +0 -0
  467. data/spec/sandbox/public/spree/products/55/small/DEMO_001_ror_bag.jpeg +0 -0
  468. data/spec/sandbox/public/spree/products/56/large/DEMO_002_Powerstation.jpg +0 -0
  469. data/spec/sandbox/public/spree/products/56/mini/DEMO_002_Powerstation.jpg +0 -0
  470. data/spec/sandbox/public/spree/products/56/original/DEMO_002_Powerstation.jpg +0 -0
  471. data/spec/sandbox/public/spree/products/56/product/DEMO_002_Powerstation.jpg +0 -0
  472. data/spec/sandbox/public/spree/products/56/small/DEMO_002_Powerstation.jpg +0 -0
  473. data/spec/sandbox/public/spree/products/57/large/DEMO_003_ror_mug.jpeg +0 -0
  474. data/spec/sandbox/public/spree/products/57/mini/DEMO_003_ror_mug.jpeg +0 -0
  475. data/spec/sandbox/public/spree/products/57/original/DEMO_003_ror_mug.jpeg +0 -0
  476. data/spec/sandbox/public/spree/products/57/product/DEMO_003_ror_mug.jpeg +0 -0
  477. data/spec/sandbox/public/spree/products/57/small/DEMO_003_ror_mug.jpeg +0 -0
  478. data/spec/sandbox/public/spree/products/58/large/DEMO_001_ror_bag.jpeg +0 -0
  479. data/spec/sandbox/public/spree/products/58/mini/DEMO_001_ror_bag.jpeg +0 -0
  480. data/spec/sandbox/public/spree/products/58/original/DEMO_001_ror_bag.jpeg +0 -0
  481. data/spec/sandbox/public/spree/products/58/product/DEMO_001_ror_bag.jpeg +0 -0
  482. data/spec/sandbox/public/spree/products/58/small/DEMO_001_ror_bag.jpeg +0 -0
  483. data/spec/sandbox/public/spree/products/59/large/DEMO_002_Powerstation.jpg +0 -0
  484. data/spec/sandbox/public/spree/products/59/mini/DEMO_002_Powerstation.jpg +0 -0
  485. data/spec/sandbox/public/spree/products/59/original/DEMO_002_Powerstation.jpg +0 -0
  486. data/spec/sandbox/public/spree/products/59/product/DEMO_002_Powerstation.jpg +0 -0
  487. data/spec/sandbox/public/spree/products/59/small/DEMO_002_Powerstation.jpg +0 -0
  488. data/spec/sandbox/public/spree/products/6/large/DEMO_003_ror_mug.jpeg +0 -0
  489. data/spec/sandbox/public/spree/products/6/mini/DEMO_003_ror_mug.jpeg +0 -0
  490. data/spec/sandbox/public/spree/products/6/original/DEMO_003_ror_mug.jpeg +0 -0
  491. data/spec/sandbox/public/spree/products/6/product/DEMO_003_ror_mug.jpeg +0 -0
  492. data/spec/sandbox/public/spree/products/6/small/DEMO_003_ror_mug.jpeg +0 -0
  493. data/spec/sandbox/public/spree/products/60/large/DEMO_003_ror_mug.jpeg +0 -0
  494. data/spec/sandbox/public/spree/products/60/mini/DEMO_003_ror_mug.jpeg +0 -0
  495. data/spec/sandbox/public/spree/products/60/original/DEMO_003_ror_mug.jpeg +0 -0
  496. data/spec/sandbox/public/spree/products/60/product/DEMO_003_ror_mug.jpeg +0 -0
  497. data/spec/sandbox/public/spree/products/60/small/DEMO_003_ror_mug.jpeg +0 -0
  498. data/spec/sandbox/public/spree/products/61/large/DEMO_001_ror_bag.jpeg +0 -0
  499. data/spec/sandbox/public/spree/products/61/mini/DEMO_001_ror_bag.jpeg +0 -0
  500. data/spec/sandbox/public/spree/products/61/original/DEMO_001_ror_bag.jpeg +0 -0
  501. data/spec/sandbox/public/spree/products/61/product/DEMO_001_ror_bag.jpeg +0 -0
  502. data/spec/sandbox/public/spree/products/61/small/DEMO_001_ror_bag.jpeg +0 -0
  503. data/spec/sandbox/public/spree/products/62/large/DEMO_002_Powerstation.jpg +0 -0
  504. data/spec/sandbox/public/spree/products/62/mini/DEMO_002_Powerstation.jpg +0 -0
  505. data/spec/sandbox/public/spree/products/62/original/DEMO_002_Powerstation.jpg +0 -0
  506. data/spec/sandbox/public/spree/products/62/product/DEMO_002_Powerstation.jpg +0 -0
  507. data/spec/sandbox/public/spree/products/62/small/DEMO_002_Powerstation.jpg +0 -0
  508. data/spec/sandbox/public/spree/products/63/large/DEMO_003_ror_mug.jpeg +0 -0
  509. data/spec/sandbox/public/spree/products/63/mini/DEMO_003_ror_mug.jpeg +0 -0
  510. data/spec/sandbox/public/spree/products/63/original/DEMO_003_ror_mug.jpeg +0 -0
  511. data/spec/sandbox/public/spree/products/63/product/DEMO_003_ror_mug.jpeg +0 -0
  512. data/spec/sandbox/public/spree/products/63/small/DEMO_003_ror_mug.jpeg +0 -0
  513. data/spec/sandbox/public/spree/products/64/large/DEMO_001_ror_bag.jpeg +0 -0
  514. data/spec/sandbox/public/spree/products/64/mini/DEMO_001_ror_bag.jpeg +0 -0
  515. data/spec/sandbox/public/spree/products/64/original/DEMO_001_ror_bag.jpeg +0 -0
  516. data/spec/sandbox/public/spree/products/64/product/DEMO_001_ror_bag.jpeg +0 -0
  517. data/spec/sandbox/public/spree/products/64/small/DEMO_001_ror_bag.jpeg +0 -0
  518. data/spec/sandbox/public/spree/products/65/large/DEMO_002_Powerstation.jpg +0 -0
  519. data/spec/sandbox/public/spree/products/65/mini/DEMO_002_Powerstation.jpg +0 -0
  520. data/spec/sandbox/public/spree/products/65/original/DEMO_002_Powerstation.jpg +0 -0
  521. data/spec/sandbox/public/spree/products/65/product/DEMO_002_Powerstation.jpg +0 -0
  522. data/spec/sandbox/public/spree/products/65/small/DEMO_002_Powerstation.jpg +0 -0
  523. data/spec/sandbox/public/spree/products/66/large/DEMO_003_ror_mug.jpeg +0 -0
  524. data/spec/sandbox/public/spree/products/66/mini/DEMO_003_ror_mug.jpeg +0 -0
  525. data/spec/sandbox/public/spree/products/66/original/DEMO_003_ror_mug.jpeg +0 -0
  526. data/spec/sandbox/public/spree/products/66/product/DEMO_003_ror_mug.jpeg +0 -0
  527. data/spec/sandbox/public/spree/products/66/small/DEMO_003_ror_mug.jpeg +0 -0
  528. data/spec/sandbox/public/spree/products/7/large/DEMO_001_ror_bag.jpeg +0 -0
  529. data/spec/sandbox/public/spree/products/7/mini/DEMO_001_ror_bag.jpeg +0 -0
  530. data/spec/sandbox/public/spree/products/7/original/DEMO_001_ror_bag.jpeg +0 -0
  531. data/spec/sandbox/public/spree/products/7/product/DEMO_001_ror_bag.jpeg +0 -0
  532. data/spec/sandbox/public/spree/products/7/small/DEMO_001_ror_bag.jpeg +0 -0
  533. data/spec/sandbox/public/spree/products/8/large/DEMO_002_Powerstation.jpg +0 -0
  534. data/spec/sandbox/public/spree/products/8/mini/DEMO_002_Powerstation.jpg +0 -0
  535. data/spec/sandbox/public/spree/products/8/original/DEMO_002_Powerstation.jpg +0 -0
  536. data/spec/sandbox/public/spree/products/8/product/DEMO_002_Powerstation.jpg +0 -0
  537. data/spec/sandbox/public/spree/products/8/small/DEMO_002_Powerstation.jpg +0 -0
  538. data/spec/sandbox/public/spree/products/9/large/DEMO_003_ror_mug.jpeg +0 -0
  539. data/spec/sandbox/public/spree/products/9/mini/DEMO_003_ror_mug.jpeg +0 -0
  540. data/spec/sandbox/public/spree/products/9/original/DEMO_003_ror_mug.jpeg +0 -0
  541. data/spec/sandbox/public/spree/products/9/product/DEMO_003_ror_mug.jpeg +0 -0
  542. data/spec/sandbox/public/spree/products/9/small/DEMO_003_ror_mug.jpeg +0 -0
  543. data/spec/sandbox/script/rails +6 -0
  544. data/spec/sandbox/test/performance/browsing_test.rb +12 -0
  545. data/spec/sandbox/test/test_helper.rb +13 -0
  546. data/spec/sandbox/tmp/cache/assets/BDA/8A0/sprockets%2F05967796558429515381c4b5d86808c2 +29 -0
  547. data/spec/sandbox/tmp/cache/assets/C48/7D0/sprockets%2Fe0032828783157c117b48022df3e444e +11807 -0
  548. data/spec/sandbox/tmp/cache/assets/C7F/DF0/sprockets%2Fe656661206c7722b1c5512e36d9e64f0 +30 -0
  549. data/spec/sandbox/tmp/cache/assets/C8A/0A0/sprockets%2F26199d9652c1a334e195719ba8541dd8 +155 -0
  550. data/spec/sandbox/tmp/cache/assets/C9C/800/sprockets%2F0810329ee389187374ea7987e2bb9f77 +33 -0
  551. data/spec/sandbox/tmp/cache/assets/C9D/E90/sprockets%2Fa84ac59c0d9b39b3975951119999d917 +29 -0
  552. data/spec/sandbox/tmp/cache/assets/CAD/FE0/sprockets%2F3270cd94654e1c2d81fc580911900fa9 +93 -0
  553. data/spec/sandbox/tmp/cache/assets/CAE/1D0/sprockets%2F03dd1f063179d32c35b917edf3784163 +21 -0
  554. data/spec/sandbox/tmp/cache/assets/CBA/9D0/sprockets%2F2493926b475d6e62d7d1376e334c2dd6 +93 -0
  555. data/spec/sandbox/tmp/cache/assets/CBA/E50/sprockets%2F4e833190fdff066c72ea67164195192f +18 -0
  556. data/spec/sandbox/tmp/cache/assets/CC6/940/sprockets%2F381b881e222cd6d38f39965b4896b19e +209 -0
  557. data/spec/sandbox/tmp/cache/assets/CD0/A60/sprockets%2F47f7f8654e1b0830c06df21b1a2040e7 +33 -0
  558. data/spec/sandbox/tmp/cache/assets/CD7/C60/sprockets%2F07d4a437a6755702af3647c235dab26e +19 -0
  559. data/spec/sandbox/tmp/cache/assets/CE1/440/sprockets%2Fbf1f9f069ace2a75097338f013470d72 +412 -0
  560. data/spec/sandbox/tmp/cache/assets/CEF/5E0/sprockets%2F459ef82f805ce1977ee2aa452760d528 +11807 -0
  561. data/spec/sandbox/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016 +3 -0
  562. data/spec/sandbox/tmp/cache/assets/D00/7B0/sprockets%2F2511eac4c5f8330291b2bf1326549afe +19 -0
  563. data/spec/sandbox/tmp/cache/assets/D04/270/sprockets%2F635ace50c8c35cab803205496eed2146 +41 -0
  564. data/spec/sandbox/tmp/cache/assets/D08/C70/sprockets%2F02f4cf94f805b4ee70a1aa776602355c +9 -0
  565. data/spec/sandbox/tmp/cache/assets/D0B/730/sprockets%2Fd63ee64122f213e93626f25be4a35d5d +6 -0
  566. data/spec/sandbox/tmp/cache/assets/D0F/110/sprockets%2F71ce77fd5231e5d0d705a8e085a0f871 +0 -0
  567. data/spec/sandbox/tmp/cache/assets/D0F/370/sprockets%2F65b590581acb0df661ea37d37c9f5152 +53 -0
  568. data/spec/sandbox/tmp/cache/assets/D10/370/sprockets%2Fc2793084fa0c48df282862bc45f72b2c +13 -0
  569. data/spec/sandbox/tmp/cache/assets/D13/4C0/sprockets%2F19b5a44963a45f1cab789db441e599a0 +412 -0
  570. data/spec/sandbox/tmp/cache/assets/D1A/150/sprockets%2Fe3180c81cf520cc7e5b9a2885ec98923 +19 -0
  571. data/spec/sandbox/tmp/cache/assets/D1B/D20/sprockets%2Fdedb93098f94d41370a4c9be4a959630 +4549 -0
  572. data/spec/sandbox/tmp/cache/assets/D28/190/sprockets%2F4eaae424d2725d30da3cb8245d8350c0 +6 -0
  573. data/spec/sandbox/tmp/cache/assets/D31/730/sprockets%2F3dfd818703e12cb1e1aff167a135571c +41 -0
  574. data/spec/sandbox/tmp/cache/assets/D34/B60/sprockets%2Fec323a4a5a3373a8293b3e8d66a7e4a1 +13 -0
  575. data/spec/sandbox/tmp/cache/assets/D34/D40/sprockets%2Fca3e3c106373aa947a80add2925a9f26 +27 -0
  576. data/spec/sandbox/tmp/cache/assets/D3A/BE0/sprockets%2F8fb5690b22562e324ea931f258cfa2ad +27 -0
  577. data/spec/sandbox/tmp/cache/assets/D3E/870/sprockets%2Fb76db487306db3e3e1dc3b3070e95d94 +4549 -0
  578. data/spec/sandbox/tmp/cache/assets/D43/7B0/sprockets%2F5e356ecdd6439806589c9898d9fde97d +53 -0
  579. data/spec/sandbox/tmp/cache/assets/D45/470/sprockets%2F6cd19fc744a481edb66691c29410fd4d +14 -0
  580. data/spec/sandbox/tmp/cache/assets/D46/6C0/sprockets%2F9e6ad6159bd63f648ee8a2f036b4a721 +53 -0
  581. data/spec/sandbox/tmp/cache/assets/D47/0D0/sprockets%2Fa1679da4467bfc1eb40c9e6e91e35555 +9409 -0
  582. data/spec/sandbox/tmp/cache/assets/D62/890/sprockets%2F73c3856d24a200d57f0b7ba6fe164afa +865 -0
  583. data/spec/sandbox/tmp/cache/assets/D6C/350/sprockets%2F9827e04e3cac800a854fd2ec0b288bf4 +0 -0
  584. data/spec/sandbox/tmp/cache/assets/D6D/A50/sprockets%2Ff7ded4a6bfd410172459cf4710a6c74e +3 -0
  585. data/spec/sandbox/tmp/cache/assets/D6F/920/sprockets%2Fd5417b2f1926be13bbd689d1e5fcc526 +14 -0
  586. data/spec/sandbox/tmp/cache/assets/D71/7E0/sprockets%2Fe71663bff3967b08bf6bc0fe01507db7 +865 -0
  587. data/spec/sandbox/tmp/cache/assets/D72/350/sprockets%2Ff1fa7173161fbe2d4d4c5e7c5741c69e +209 -0
  588. data/spec/sandbox/tmp/cache/assets/D73/480/sprockets%2F1fe4d21884c4db06ee089b5da298f32d +306 -0
  589. data/spec/sandbox/tmp/cache/assets/D74/F00/sprockets%2Ff4fbdd38742160ad3db7a76c938e83d1 +45 -0
  590. data/spec/sandbox/tmp/cache/assets/D78/860/sprockets%2F339f9afd4dbcbf97d0647817d343a71b +3 -0
  591. data/spec/sandbox/tmp/cache/assets/D79/1F0/sprockets%2F8275f49b8bab7b12a384e4ee8e09c7e1 +40 -0
  592. data/spec/sandbox/tmp/cache/assets/D7A/620/sprockets%2F59d4faa69df49cb38043c522eb78f19a +45 -0
  593. data/spec/sandbox/tmp/cache/assets/D7B/850/sprockets%2Fe1aeffb9bb8d70056596c37932ed6f42 +0 -0
  594. data/spec/sandbox/tmp/cache/assets/D90/C90/sprockets%2F070fb0a8b408f5b313840eaf5fcba77c +155 -0
  595. data/spec/sandbox/tmp/cache/assets/DA4/270/sprockets%2F501c395ed23e58949bba4f543cf6aebf +9409 -0
  596. data/spec/sandbox/tmp/cache/assets/DA8/E00/sprockets%2F74af3c8bd250fbfc4d98fe9551441df3 +0 -0
  597. data/spec/sandbox/tmp/cache/assets/DB5/B30/sprockets%2Fac3cabc1f3a1c6dea21b5968c2830b07 +306 -0
  598. data/spec/sandbox/tmp/cache/assets/DC9/EE0/sprockets%2Fd73a6d912e56561bc3aef7e8adcc1d40 +0 -0
  599. data/spec/sandbox/tmp/cache/assets/DCF/0B0/sprockets%2F17171de28f3e5db9a23ceeeceb64d355 +19 -0
  600. data/spec/sandbox/tmp/cache/assets/DE0/9B0/sprockets%2F98b10e39eeb69f8cb419f5114eec8ffa +239 -0
  601. data/spec/sandbox/tmp/cache/assets/DE8/0E0/sprockets%2Fcd07d79e6b93c6eec93f854ffff0f334 +0 -0
  602. data/spec/sandbox/tmp/cache/assets/DFA/D70/sprockets%2F4ad1da8bda1b38077c809f3ebacf964c +239 -0
  603. data/spec/sandbox/tmp/cache/assets/DFE/AA0/sprockets%2Fc127e6e63f95c0fc53ee4a12febd82af +30 -0
  604. data/spec/sandbox/tmp/cache/assets/E00/B50/sprockets%2F3a2feeb54bb2c9e8a360f8f8f2a9e1b4 +53 -0
  605. data/spec/sandbox/tmp/cache/assets/E08/C20/sprockets%2F0ad8fbc5a986d12b73b4fecc98e70ef5 +18 -0
  606. data/spec/sandbox/tmp/cache/assets/E09/160/sprockets%2F28fd19d52fa996bd5bc0b1cf8efc2f74 +40 -0
  607. data/spec/sandbox/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6 +3 -0
  608. data/spec/sandbox/tmp/cache/assets/E32/490/sprockets%2F78aadee343f7b9923ca5bceede46be05 +21 -0
  609. data/spec/sandbox/tmp/cache/assets/E5A/810/sprockets%2Fbc9acd6ef9418cbacd83015fc46ead3c +9 -0
  610. data/spec/spec_helper.rb +345 -0
  611. data/spec/spree_exporter_spec.rb +64 -0
  612. data/spec/spree_generator_spec.rb +91 -0
  613. data/spec/spree_images_loader_spec.rb +102 -0
  614. data/spec/spree_loader_spec.rb +237 -0
  615. data/spec/spree_method_mapping_spec.rb +222 -0
  616. data/spec/spree_taxons_loader_spec.rb +282 -0
  617. data/spec/spree_variants_loader_spec.rb +186 -0
  618. data/spec/thor_spec.rb +61 -0
  619. metadata +681 -0
data/LICENSE.txt ADDED
@@ -0,0 +1,27 @@
1
+ == DataShift Spree
2
+
3
+ ## License
4
+
5
+ Copyright:: (c) Autotelik Media Ltd 2012
6
+ Author :: Tom Statter
7
+ Date :: Sept 2012
8
+
9
+ The MIT License
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in
19
+ all copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27
+ THE SOFTWARE.
data/README.markdown ADDED
@@ -0,0 +1,81 @@
1
+ ## DataShift
2
+
3
+ Specific loaders and command line tasks for Spree E-Commerce.
4
+
5
+ Wiki here : **https://github.com/autotelik/datashift/wiki**
6
+
7
+ ### Features
8
+
9
+ Import and Export Spree models through .xls or CSV files, including
10
+ all associations and setting configurable defaults or over rides.
11
+
12
+ High level rake and thor command line tasks for import/export provided.
13
+
14
+ Specific loaders and command line tasks provided out the box for **Spree E-Commerce**,
15
+ enabling import/export of Product data including creating Variants with different
16
+ count on hands and all associations including Properties/Taxons/OptionTypes and Images.
17
+
18
+ Loaders can be configured via YAML with over ride values, default values and mandatory column settings.
19
+
20
+ Many example Spreadsheets/CSV files in spec/fixtures, fully documented with comments for each column.
21
+
22
+ ## Installation
23
+
24
+ Add gem 'datashift' to your Gemfile/bundle, or install the latest gem as usual :
25
+
26
+ gem install datashift
27
+
28
+ To use :
29
+
30
+ gem 'datashift'
31
+ require 'datashift'
32
+
33
+
34
+ To use the Thor command line applications :
35
+
36
+ Create a high level .thor file - e.g mysite.thor - in your applications root directory
37
+
38
+ Edit the file and add the following to pull in the thor commands :
39
+
40
+ ```ruby
41
+ require 'thor'
42
+ require 'datashift'
43
+
44
+ DataShift::load_commands
45
+ ```
46
+ To check the available tasks run
47
+
48
+ bundle exc thor list datashift
49
+
50
+ To get usage information use thor help <command>, for example
51
+
52
+ bundle exec thor help datashift:generate:excel
53
+
54
+
55
+ ## License
56
+
57
+ Copyright:: (c) Autotelik Media Ltd 2012
58
+
59
+ Author :: Tom Statter
60
+
61
+ Date :: Dec 2012
62
+
63
+ The MIT License
64
+
65
+ Permission is hereby granted, free of charge, to any person obtaining a copy
66
+ of this software and associated documentation files (the "Software"), to deal
67
+ in the Software without restriction, including without limitation the rights
68
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
69
+ copies of the Software, and to permit persons to whom the Software is
70
+ furnished to do so, subject to the following conditions:
71
+
72
+ The above copyright notice and this permission notice shall be included in
73
+ all copies or substantial portions of the Software.
74
+
75
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
76
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
77
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
78
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
79
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
80
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
81
+ THE SOFTWARE.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,36 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ puts lib
3
+ $:.unshift '.'
4
+ $:.unshift lib unless $:.include?(lib)
5
+
6
+ require 'rake'
7
+
8
+ require 'datashift_spree'
9
+
10
+ Gem::Specification.new do |s|
11
+ s.platform = Gem::Platform::RUBY
12
+ s.name = DataShift::SpreeHelper::gem_name
13
+ s.version = DataShift::SpreeHelper::gem_version
14
+
15
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
16
+ s.authors = ["Thomas Statter"]
17
+ s.date = "2012-09-10"
18
+ s.description = "Comprehensive tools to import/export between Excel/CSV and ActiveRecord databases, Rails apps, and any Ruby project"
19
+ s.email = "rubygems@autotelik.co.uk"
20
+
21
+ s.files = FileList["datashift_spree.thor",
22
+ "README.markdown",
23
+ "datashift_spree.gemspec",
24
+ 'VERSION',
25
+ "LICENSE.txt",
26
+ "{lib,spec}/**/*"].exclude("rdoc").exclude("nbproject").exclude("fixtures").exclude(".log").exclude(".contrib").to_a
27
+
28
+ s.homepage = "http://github.com/autotelik/datashift"
29
+ s.licenses = ["MIT"]
30
+ s.require_paths = ["lib"]
31
+ s.rubygems_version = "1.8.15"
32
+ s.summary = "Shift data betwen Excel/CSV and Ruby"
33
+
34
+ s.add_dependency(%q<datashift>, [">= 0.9.0"])
35
+ end
36
+
@@ -0,0 +1,52 @@
1
+ # Copyright:: (c) Autotelik Media Ltd 2011
2
+ # Author :: Tom Statter
3
+ # Date :: Aug 2010
4
+ #
5
+ # License:: MIT - Free, OpenSource
6
+ #
7
+ # Details:: Gem::Specification for DataShift Spree gem.
8
+ #
9
+ # Provides support for moving data between .xls (Excel/OpenOffice)
10
+ # Spreedsheets and CSV files specifically tailored for uploading or exporting
11
+ # Spree Products, associations and Images
12
+
13
+
14
+ class DatashiftSpree < Thor
15
+
16
+ desc 'build', 'Build gem '
17
+
18
+ method_option :version, :required => true, :aliases => '-v', :desc => "YAML config containing static definitions"
19
+ method_option :push, :aliases => '-p', :desc => "Push most recent gem to rubygems"
20
+ method_option :install, :aliases => '-i', :desc => "Run gem install on the built gems"
21
+
22
+ def build()
23
+
24
+ $:.unshift '.' # 1.9.3 quite strict, '.' must be in load path for relative paths to work from here
25
+
26
+ gemspec = 'datashift_spree.gemspec'
27
+
28
+ # Bump the VERSION file
29
+
30
+ system("echo #{options[:version]} > VERSION ") if(options[:version])
31
+
32
+ puts "Will build gem #{gemspec}"
33
+
34
+ system("gem build #{gemspec}")
35
+
36
+ glob = options[:version] ? "datashift_spree-#{options[:version]}.gem" : "datashift_spree-*.gem"
37
+
38
+ files = Dir[glob].sort_by { |f|File.mtime(f) }
39
+ files.reject! { |f| (File.file?(f) ? false : true) }
40
+ recent = files.reverse[0]
41
+
42
+ if(options[:install] && recent)
43
+ puts recent
44
+ system("gem install --no-ri --no-rdoc #{recent}")
45
+ end
46
+
47
+ if(options[:push] && recent)
48
+ system("gem push #{recent}")
49
+ end
50
+ end
51
+
52
+ end
@@ -0,0 +1,118 @@
1
+ # Copyright:: (c) Autotelik Media Ltd 2010 - 2012 Tom Statter
2
+ # Author :: Tom Statter
3
+ # Date :: Aug 2012
4
+ # License:: Free, Open Source.
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining
7
+ # a copy of this software and associated documentation files (the
8
+ # "Software"), to deal in the Software without restriction, including
9
+ # without limitation the rights to use, copy, modify, merge, publish,
10
+ # distribute, sublicense, and/or sell copies of the Software, and to
11
+ # permit persons to whom the Software is furnished to do so, subject to
12
+ # the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ #++
25
+
26
+
27
+ # Details:: Active Record Loader
28
+ #
29
+ # To pull DataShift commands into your main Spree application :
30
+ #
31
+ # require 'datashift_spree'
32
+ #
33
+ # DataShift::SpreeHelper::load_commands
34
+ #
35
+ require 'rbconfig'
36
+
37
+ module DataShift
38
+
39
+ module SpreeHelper
40
+
41
+ def self.gem_version
42
+ unless(@gem_version)
43
+ if(File.exists?(File.join(root_path, 'VERSION') ))
44
+ File.read( File.join(root_path, 'VERSION') ).match(/.*(\d+.\d+.\d+)/)
45
+ @gem_version = $1
46
+ else
47
+ @gem_version = '1.0.0'
48
+ end
49
+ end
50
+ @gem_version
51
+ end
52
+
53
+ def self.gem_name
54
+ "datashift_spree"
55
+ end
56
+
57
+ def self.root_path
58
+ File.expand_path("#{File.dirname(__FILE__)}/..")
59
+ end
60
+
61
+ def self.library_path
62
+ File.expand_path("#{File.dirname(__FILE__)}/../lib")
63
+ end
64
+
65
+ def self.require_libraries
66
+
67
+ loader_libs = %w{ lib }
68
+
69
+ # Base search paths - these will be searched recursively
70
+ loader_paths = []
71
+
72
+ loader_libs.each {|l| loader_paths << File.join(root_path(), l) }
73
+
74
+ # Define require search paths, any dir in here will be added to LOAD_PATH
75
+
76
+ loader_paths.each do |base|
77
+ $:.unshift base if File.directory?(base)
78
+ Dir[File.join(base, '**', '**')].each do |p|
79
+ if File.directory? p
80
+ $:.unshift p
81
+ end
82
+ end
83
+ end
84
+
85
+ require_libs = %w{ loaders helpers }
86
+ require_libs.each do |base|
87
+ Dir[File.join(library_path, base, '**/*.rb')].each do |rb|
88
+ unless File.directory? rb
89
+ # require rb
90
+ end
91
+ end
92
+ end
93
+
94
+ end
95
+
96
+ # Load all the datashift rake tasks and make them available throughout app
97
+ def self.load_tasks
98
+ # Long parameter lists so ensure rake -T produces nice wide output
99
+ ENV['RAKE_COLUMNS'] = '180'
100
+ base = File.join(root_path, 'tasks', '**')
101
+ Dir["#{base}/*.rake"].sort.each { |ext| load ext }
102
+ end
103
+
104
+
105
+ # Load all the datashift Thor commands and make them available throughout app
106
+
107
+ def self.load_commands()
108
+ base = File.join(library_path, 'thor', '**')
109
+
110
+ Dir["#{base}/*.thor"].each do |f|
111
+ next unless File.file?(f)
112
+ Thor::Util.load_thorfile(f)
113
+ end
114
+ end
115
+ end
116
+ end
117
+
118
+ DataShift::SpreeHelper::require_libraries
@@ -0,0 +1,32 @@
1
+ # Copyright:: (c) Autotelik Media Ltd 2010 - 2012 Tom Statter
2
+ # Author :: Tom Statter
3
+ # Date :: Aug 2012
4
+ # License:: Free, Open Source.
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining
7
+ # a copy of this software and associated documentation files (the
8
+ # "Software"), to deal in the Software without restriction, including
9
+ # without limitation the rights to use, copy, modify, merge, publish,
10
+ # distribute, sublicense, and/or sell copies of the Software, and to
11
+ # permit persons to whom the Software is furnished to do so, subject to
12
+ # the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ #++
25
+
26
+ require 'datashift'
27
+
28
+ require 'datashift_spree'
29
+ require 'helpers/spree_helper'
30
+
31
+ require 'loaders/spree/product_loader'
32
+ require 'loaders/spree/image_loader'
@@ -0,0 +1,74 @@
1
+ # Copyright:: (c) Autotelik Media Ltd 2011
2
+ # Author :: Tom Statter
3
+ # Date :: Aug 2011
4
+ # License:: MIT
5
+ #
6
+ # Details:: Spree Helper for Product Loading.
7
+ #
8
+ # Utils to try to manage different Spree versions seamlessly.
9
+ #
10
+ # Spree Helper for RSpec testing, enables mixing in Support for
11
+ # testing or loading Rails Spree e-commerce.
12
+ #
13
+ # The Spree version you want to test should be picked up from spec/Gemfile
14
+ #
15
+ # Since datashift gem is not a Rails app or a Spree App, provides utilities to internally
16
+ # create a Spree Database, and to load Spree components, enabling standalone testing.
17
+ #
18
+ # => Has been tested with 0.11.2, 0.7, 1.0.0
19
+ #
20
+ # => TODO - See if we can improve DB creation/migration ....
21
+ # N.B Some or all of Spree Tests may fail very first time run,
22
+ # as the database is auto generated
23
+ # =>
24
+ require 'spree'
25
+ require 'spree_core'
26
+
27
+ module DataShift
28
+
29
+ module SpreeHelper
30
+
31
+ def self.root
32
+ Gem.loaded_specs['spree_core'] ? Gem.loaded_specs['spree_core'].full_gem_path : ""
33
+ end
34
+
35
+ # Helpers so we can cope with both pre 1.0 and post 1.0 versions of Spree in same datashift version
36
+
37
+ def self.get_spree_class(x)
38
+ if(is_namespace_version())
39
+ ModelMapper::class_from_string("Spree::#{x}")
40
+ else
41
+ ModelMapper::class_from_string(x.to_s)
42
+ end
43
+ end
44
+
45
+ def self.get_product_class
46
+ if(is_namespace_version())
47
+ Object.const_get('Spree').const_get('Product')
48
+ else
49
+ Object.const_get('Product')
50
+ end
51
+ end
52
+
53
+ def self.version
54
+ Gem.loaded_specs['spree'] ? Gem.loaded_specs['spree'].version.version : "0.0.0"
55
+ end
56
+
57
+ def self.is_namespace_version
58
+ SpreeHelper::version.to_f >= 1
59
+ end
60
+
61
+ def self.lib_root
62
+ File.join(root, 'lib')
63
+ end
64
+
65
+ def self.app_root
66
+ File.join(root, 'app')
67
+ end
68
+
69
+ def self.load()
70
+ require 'spree'
71
+ require 'spree_core'
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,74 @@
1
+ # Copyright:: (c) Autotelik Media Ltd 2011
2
+ # Author :: Tom Statter
3
+ # Date :: Jan 2011
4
+ # License:: MIT. Free, Open Source.
5
+ #
6
+ require 'loader_base'
7
+ #require 'paperclip/attachment_loader'
8
+
9
+ module DataShift
10
+
11
+
12
+ module SpreeHelper
13
+
14
+ # TODO - extract this out of SpreeHelper to create a general paperclip loader
15
+ class ImageLoader < LoaderBase
16
+
17
+ # include DataShift::SpreeImageLoading
18
+ include DataShift::CsvLoading
19
+ include DataShift::ExcelLoading
20
+
21
+ def initialize(image = nil, options = {})
22
+
23
+ opts = options.merge(:load => false) # Don't need operators and no table Spree::Image
24
+
25
+ super( DataShift::SpreeHelper::get_spree_class('Image'), image, opts )
26
+
27
+ if(DataShift::SpreeHelper::version.to_f > 1.0 )
28
+ @attachment_klazz = DataShift::SpreeHelper::get_spree_class('Variant' )
29
+ else
30
+ @attachment_klazz = DataShift::SpreeHelper::get_spree_class('Product' )
31
+ end
32
+
33
+ puts "Attachment Class is #{@attachment_klazz}" if(@verbose)
34
+
35
+ raise "Failed to create Image for loading" unless @load_object
36
+ end
37
+
38
+ def process()
39
+
40
+ if(current_value && @current_method_detail.operator?('attachment') )
41
+
42
+ # assign the image file data as an attachment
43
+ @load_object.attachment = get_file(current_value)
44
+
45
+ puts "Image attachment created : #{@load_object.inspect}"
46
+
47
+ elsif(current_value && @current_method_detail.operator )
48
+
49
+ # find the db record to assign our Image to
50
+ add_record( get_record_by(@attachment_klazz, @current_method_detail.operator, current_value) )
51
+
52
+ end
53
+
54
+ end
55
+
56
+ def add_record(record)
57
+ if(record)
58
+ if(SpreeHelper::version.to_f > 1 )
59
+ @load_object.viewable = record
60
+ else
61
+ @load_object.viewable = record.product # SKU stored on Variant but we want it's master Product
62
+ end
63
+ @load_object.save
64
+ puts "Image viewable set : #{record.inspect}"
65
+
66
+ else
67
+ puts "WARNING - Cannot set viewable - No matching record supplied"
68
+ logger.error"Failed to find a matching record"
69
+ end
70
+ end
71
+ end
72
+
73
+ end
74
+ end