spree_core 3.0.9 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (627) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/{spree.js.coffee.erb → spree.js.coffee} +13 -4
  3. data/app/helpers/spree/base_helper.rb +5 -2
  4. data/app/helpers/spree/products_helper.rb +37 -12
  5. data/app/mailers/spree/base_mailer.rb +11 -2
  6. data/app/mailers/spree/reimbursement_mailer.rb +6 -6
  7. data/app/models/concerns/spree/acts_as_taggable.rb +11 -0
  8. data/app/models/concerns/spree/adjustment_source.rb +3 -10
  9. data/app/models/concerns/spree/default_price.rb +7 -1
  10. data/app/models/concerns/spree/named_type.rb +1 -1
  11. data/app/models/concerns/spree/ransackable_attributes.rb +6 -1
  12. data/app/models/concerns/spree/user_api_authentication.rb +7 -1
  13. data/app/models/concerns/spree/user_methods.rb +57 -0
  14. data/app/models/concerns/spree/user_reporting.rb +2 -2
  15. data/app/models/concerns/spree/vat_price_calculation.rb +47 -0
  16. data/app/models/spree/ability.rb +9 -1
  17. data/app/models/spree/address.rb +75 -45
  18. data/app/models/spree/adjustable/adjuster/base.rb +25 -0
  19. data/app/models/spree/adjustable/adjuster/promotion.rb +41 -0
  20. data/app/models/spree/adjustable/adjuster/tax.rb +26 -0
  21. data/app/models/spree/adjustable/adjustments_updater.rb +22 -45
  22. data/app/models/spree/adjustment.rb +8 -10
  23. data/app/models/spree/app_configuration.rb +14 -8
  24. data/app/models/spree/base.rb +5 -1
  25. data/app/models/spree/calculator/default_tax.rb +2 -10
  26. data/app/models/spree/calculator/free_shipping.rb +6 -5
  27. data/app/models/spree/calculator.rb +1 -6
  28. data/app/models/spree/classification.rb +7 -3
  29. data/app/models/spree/country.rb +15 -3
  30. data/app/models/spree/credit_card.rb +37 -38
  31. data/app/models/spree/customer_return.rb +7 -15
  32. data/app/models/spree/gateway/bogus.rb +12 -12
  33. data/app/models/spree/gateway/bogus_simple.rb +4 -4
  34. data/app/models/spree/gateway.rb +8 -7
  35. data/app/models/spree/image.rb +3 -3
  36. data/app/models/spree/inventory_unit.rb +13 -14
  37. data/app/models/spree/legacy_user.rb +1 -14
  38. data/app/models/spree/line_item.rb +79 -67
  39. data/app/models/spree/log_entry.rb +1 -4
  40. data/app/models/spree/option_type.rb +15 -6
  41. data/app/models/spree/option_type_prototype.rb +9 -0
  42. data/app/models/spree/option_value.rb +11 -3
  43. data/app/models/spree/option_value_variant.rb +6 -0
  44. data/app/models/spree/order/checkout.rb +10 -13
  45. data/app/models/spree/order/currency_updater.rb +1 -1
  46. data/app/models/spree/order/store_credit.rb +96 -0
  47. data/app/models/spree/order.rb +105 -68
  48. data/app/models/spree/order_contents.rb +13 -7
  49. data/app/models/spree/order_inventory.rb +16 -9
  50. data/app/models/spree/order_promotion.rb +6 -0
  51. data/app/models/spree/order_updater.rb +4 -8
  52. data/app/models/spree/payment/gateway_options.rb +8 -4
  53. data/app/models/spree/payment/processing.rb +1 -1
  54. data/app/models/spree/payment.rb +55 -29
  55. data/app/models/spree/payment_method/store_credit.rb +130 -0
  56. data/app/models/spree/payment_method.rb +18 -13
  57. data/app/models/spree/preference.rb +1 -1
  58. data/app/models/spree/preferences/store.rb +2 -2
  59. data/app/models/spree/price.rb +16 -6
  60. data/app/models/spree/product/scopes.rb +22 -13
  61. data/app/models/spree/product.rb +83 -52
  62. data/app/models/spree/product_option_type.rb +7 -2
  63. data/app/models/spree/product_promotion_rule.rb +9 -0
  64. data/app/models/spree/product_property.rb +9 -10
  65. data/app/models/spree/promotion/actions/create_adjustment.rb +1 -1
  66. data/app/models/spree/promotion/actions/create_line_items.rb +21 -3
  67. data/app/models/spree/promotion/rules/country.rb +23 -0
  68. data/app/models/spree/promotion/rules/option_value.rb +13 -10
  69. data/app/models/spree/promotion/rules/product.rb +3 -1
  70. data/app/models/spree/promotion/rules/taxon.rb +3 -2
  71. data/app/models/spree/promotion/rules/user.rb +4 -4
  72. data/app/models/spree/promotion.rb +55 -19
  73. data/app/models/spree/promotion_action.rb +3 -3
  74. data/app/models/spree/promotion_category.rb +1 -1
  75. data/app/models/spree/promotion_handler/cart.rb +3 -17
  76. data/app/models/spree/promotion_handler/coupon.rb +22 -22
  77. data/app/models/spree/promotion_handler/page.rb +2 -2
  78. data/app/models/spree/promotion_rule_taxon.rb +9 -0
  79. data/app/models/spree/promotion_rule_user.rb +9 -0
  80. data/app/models/spree/property.rb +2 -1
  81. data/app/models/spree/property_prototype.rb +9 -0
  82. data/app/models/spree/prototype.rb +8 -3
  83. data/app/models/spree/prototype_taxon.rb +9 -0
  84. data/app/models/spree/refund.rb +10 -7
  85. data/app/models/spree/refund_reason.rb +2 -2
  86. data/app/models/spree/reimbursement.rb +12 -16
  87. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +23 -6
  88. data/app/models/spree/reimbursement_type/store_credit.rb +28 -0
  89. data/app/models/spree/reimbursement_type.rb +5 -1
  90. data/app/models/spree/return_authorization.rb +8 -13
  91. data/app/models/spree/return_authorization_reason.rb +1 -1
  92. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
  93. data/app/models/spree/return_item.rb +14 -13
  94. data/app/models/spree/role.rb +3 -2
  95. data/app/models/spree/role_user.rb +6 -0
  96. data/app/models/spree/shipment.rb +23 -30
  97. data/app/models/spree/shipment_handler.rb +2 -2
  98. data/app/models/spree/shipping_category.rb +6 -3
  99. data/app/models/spree/shipping_method.rb +12 -11
  100. data/app/models/spree/shipping_method_zone.rb +6 -0
  101. data/app/models/spree/shipping_rate.rb +16 -29
  102. data/app/models/spree/state.rb +3 -2
  103. data/app/models/spree/state_change.rb +1 -1
  104. data/app/models/spree/stock/adjuster.rb +9 -2
  105. data/app/models/spree/stock/content_item.rb +10 -12
  106. data/app/models/spree/stock/coordinator.rb +21 -15
  107. data/app/models/spree/stock/estimator.rb +28 -30
  108. data/app/models/spree/stock/inventory_unit_builder.rb +2 -10
  109. data/app/models/spree/stock/package.rb +11 -3
  110. data/app/models/spree/stock/packer.rb +16 -6
  111. data/app/models/spree/stock/prioritizer.rb +25 -15
  112. data/app/models/spree/stock/quantifier.rb +5 -5
  113. data/app/models/spree/stock/splitter/backordered.rb +2 -2
  114. data/app/models/spree/stock/splitter/shipping_category.rb +6 -1
  115. data/app/models/spree/stock_item.rb +15 -18
  116. data/app/models/spree/stock_location.rb +4 -7
  117. data/app/models/spree/stock_movement.rb +16 -9
  118. data/app/models/spree/stock_transfer.rb +11 -12
  119. data/app/models/spree/store.rb +15 -6
  120. data/app/models/spree/store_credit.rb +252 -0
  121. data/app/models/spree/store_credit_category.rb +22 -0
  122. data/app/models/spree/store_credit_event.rb +38 -0
  123. data/app/models/spree/store_credit_type.rb +6 -0
  124. data/app/models/spree/tag.rb +4 -0
  125. data/app/models/spree/tax_category.rb +3 -8
  126. data/app/models/spree/tax_rate.rb +61 -121
  127. data/app/models/spree/taxon.rb +12 -6
  128. data/app/models/spree/tracker.rb +12 -1
  129. data/app/models/spree/validations/db_maximum_length_validator.rb +2 -1
  130. data/app/models/spree/variant.rb +94 -49
  131. data/app/models/spree/zone.rb +23 -19
  132. data/app/models/spree/zone_member.rb +6 -0
  133. data/app/validators/db_maximum_length_validator.rb +11 -0
  134. data/app/views/layouts/spree/base_mailer.html.erb +38 -781
  135. data/app/views/spree/order_mailer/_adjustment.html.erb +8 -0
  136. data/app/views/spree/order_mailer/_subtotal.html.erb +8 -0
  137. data/app/views/spree/order_mailer/_total.html.erb +8 -0
  138. data/app/views/spree/order_mailer/cancel_email.html.erb +13 -28
  139. data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
  140. data/app/views/spree/order_mailer/confirm_email.html.erb +49 -63
  141. data/app/views/spree/order_mailer/confirm_email.text.erb +1 -1
  142. data/app/views/spree/shared/_base_mailer_header.html.erb +5 -7
  143. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +777 -0
  144. data/app/views/spree/shared/_error_messages.html.erb +1 -1
  145. data/app/views/spree/shared/_mailer_line_item.html.erb +12 -0
  146. data/app/views/spree/shared/_paths.html.erb +8 -0
  147. data/app/views/spree/shipment_mailer/shipped_email.html.erb +21 -14
  148. data/app/views/spree/shipment_mailer/shipped_email.text.erb +3 -3
  149. data/config/initializers/acts_as_taggable_on.rb +9 -0
  150. data/config/initializers/friendly_id.rb +0 -81
  151. data/config/initializers/user_class_extensions.rb +7 -38
  152. data/config/locales/en.yml +137 -12
  153. data/config/routes.rb +7 -0
  154. data/db/default/spree/countries.rb +5 -1
  155. data/db/default/spree/default_reimbursement_type.rb +1 -1
  156. data/db/default/spree/roles.rb +2 -2
  157. data/db/default/spree/states.rb +1 -1
  158. data/db/default/spree/zones.rb +4 -5
  159. data/db/migrate/20120831092320_spree_one_two.rb +101 -101
  160. data/db/migrate/20120831092359_spree_promo_one_two.rb +14 -14
  161. data/db/migrate/20120905145253_add_tax_rate_label.rb +1 -1
  162. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +2 -2
  163. data/db/migrate/20120929093553_remove_unused_preference_columns.rb +4 -4
  164. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +2 -2
  165. data/db/migrate/20121010142909_add_states_required_to_countries.rb +2 -2
  166. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +3 -3
  167. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +5 -5
  168. data/db/migrate/20121031162139_split_prices_from_variants.rb +10 -10
  169. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +3 -3
  170. data/db/migrate/20121107184631_add_currency_to_line_items.rb +1 -1
  171. data/db/migrate/20121107194006_add_currency_to_orders.rb +1 -1
  172. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +2 -2
  173. data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +1 -1
  174. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +2 -2
  175. data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +1 -1
  176. data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +1 -1
  177. data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +1 -1
  178. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +2 -2
  179. data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +1 -1
  180. data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +1 -1
  181. data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +1 -1
  182. data/db/migrate/20130211190146_create_spree_stock_items.rb +2 -2
  183. data/db/migrate/20130211191120_create_spree_stock_locations.rb +1 -1
  184. data/db/migrate/20130213191427_create_default_stock.rb +1 -2
  185. data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +1 -1
  186. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +2 -2
  187. data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +1 -1
  188. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +3 -3
  189. data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +1 -1
  190. data/db/migrate/20130228210442_create_shipping_method_zone.rb +3 -3
  191. data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +1 -1
  192. data/db/migrate/20130301162924_create_shipping_method_categories.rb +3 -3
  193. data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +1 -1
  194. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +5 -5
  195. data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +1 -1
  196. data/db/migrate/20130305143310_create_stock_movements.rb +1 -1
  197. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +3 -3
  198. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +2 -2
  199. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +2 -2
  200. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +2 -2
  201. data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +1 -1
  202. data/db/migrate/20130319062004_change_orders_total_precision.rb +5 -5
  203. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +2 -2
  204. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +2 -2
  205. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +2 -2
  206. data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +1 -1
  207. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +3 -3
  208. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +3 -3
  209. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +1 -1
  210. data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +1 -1
  211. data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +1 -1
  212. data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +1 -1
  213. data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +1 -1
  214. data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +2 -2
  215. data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +1 -1
  216. data/db/migrate/20130417120035_update_adjustment_states.rb +3 -3
  217. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +4 -4
  218. data/db/migrate/20130418125341_create_spree_stock_transfers.rb +1 -1
  219. data/db/migrate/20130423110707_drop_products_count_on_hand.rb +1 -1
  220. data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +1 -1
  221. data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +1 -1
  222. data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +1 -1
  223. data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +1 -1
  224. data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +1 -1
  225. data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +1 -1
  226. data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +1 -1
  227. data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +1 -1
  228. data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +1 -1
  229. data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +1 -1
  230. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +2 -2
  231. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +4 -4
  232. data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +1 -1
  233. data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +1 -1
  234. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +2 -2
  235. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +3 -3
  236. data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +1 -1
  237. data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +1 -1
  238. data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +1 -1
  239. data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +1 -1
  240. data/db/migrate/20130806022521_drop_spree_mail_methods.rb +1 -1
  241. data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +1 -1
  242. data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -4
  243. data/db/migrate/20130807024302_rename_adjustment_fields.rb +1 -1
  244. data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +1 -1
  245. data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +1 -1
  246. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +2 -2
  247. data/db/migrate/20130813140619_expand_order_number_size.rb +3 -3
  248. data/db/migrate/20130813232134_rename_activators_to_promotions.rb +1 -1
  249. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +2 -2
  250. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +2 -2
  251. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +1 -1
  252. data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +2 -2
  253. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +2 -2
  254. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +1 -1
  255. data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +1 -1
  256. data/db/migrate/20130909115621_change_states_required_for_countries.rb +1 -1
  257. data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +1 -1
  258. data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +2 -2
  259. data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +1 -1
  260. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +2 -2
  261. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +2 -2
  262. data/db/migrate/20131107132123_add_tax_category_to_variants.rb +1 -1
  263. data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +1 -1
  264. data/db/migrate/20131118043959_add_included_to_adjustments.rb +2 -2
  265. data/db/migrate/20131118050234_rename_tax_total_fields.rb +1 -1
  266. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +1 -1
  267. data/db/migrate/20131120234456_add_updated_at_to_variants.rb +1 -1
  268. data/db/migrate/20131127001002_add_position_to_classifications.rb +1 -1
  269. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +2 -2
  270. data/db/migrate/20131211192741_unique_shipping_method_categories.rb +1 -1
  271. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +2 -2
  272. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +1 -1
  273. data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +1 -1
  274. data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +1 -1
  275. data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +1 -1
  276. data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +1 -1
  277. data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +1 -1
  278. data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +1 -1
  279. data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +1 -1
  280. data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +1 -1
  281. data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +1 -1
  282. data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +1 -1
  283. data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +1 -1
  284. data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +1 -1
  285. data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +1 -1
  286. data/db/migrate/20140213184916_add_more_indexes.rb +1 -1
  287. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +2 -2
  288. data/db/migrate/20140227112348_add_preference_store_to_everything.rb +1 -1
  289. data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +1 -1
  290. data/db/migrate/20140309023735_migrate_old_preferences.rb +1 -1
  291. data/db/migrate/20140309024355_create_spree_stores.rb +2 -2
  292. data/db/migrate/20140309033438_create_store_from_preferences.rb +2 -2
  293. data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +1 -1
  294. data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +1 -1
  295. data/db/migrate/20140331100557_add_additional_store_fields.rb +1 -1
  296. data/db/migrate/20140410141842_add_many_missing_indexes.rb +1 -1
  297. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +1 -1
  298. data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +1 -1
  299. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +5 -5
  300. data/db/migrate/20140518174634_add_token_to_spree_orders.rb +1 -1
  301. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +2 -2
  302. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +1 -1
  303. data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +1 -1
  304. data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +1 -1
  305. data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +1 -1
  306. data/db/migrate/20140625214618_create_spree_refunds.rb +1 -1
  307. data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +1 -1
  308. data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +1 -1
  309. data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +1 -1
  310. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +2 -2
  311. data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +1 -1
  312. data/db/migrate/20140710190048_drop_return_authorization_amount.rb +1 -1
  313. data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +1 -1
  314. data/db/migrate/20140713140527_create_spree_refund_reasons.rb +1 -1
  315. data/db/migrate/20140713142214_rename_return_authorization_reason.rb +1 -1
  316. data/db/migrate/20140715182625_create_spree_promotion_categories.rb +1 -1
  317. data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +1 -1
  318. data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +1 -1
  319. data/db/migrate/20140717155155_create_default_refund_reason.rb +1 -1
  320. data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +1 -1
  321. data/db/migrate/20140718133010_create_spree_customer_returns.rb +1 -1
  322. data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +1 -1
  323. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +5 -5
  324. data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +1 -1
  325. data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +1 -1
  326. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +2 -2
  327. data/db/migrate/20140725131539_create_spree_reimbursements.rb +1 -1
  328. data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +1 -1
  329. data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +1 -1
  330. data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +1 -1
  331. data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +1 -1
  332. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +1 -1
  333. data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +1 -1
  334. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +1 -1
  335. data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +1 -1
  336. data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +1 -1
  337. data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +1 -1
  338. data/db/migrate/20140911173301_add_kind_to_zone.rb +1 -1
  339. data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +1 -1
  340. data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +1 -1
  341. data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +1 -1
  342. data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +1 -1
  343. data/db/migrate/20141009204607_add_store_id_to_orders.rb +1 -1
  344. data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +1 -1
  345. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +1 -1
  346. data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +2 -7
  347. data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +1 -1
  348. data/db/migrate/20141105213646_update_classifications_positions.rb +1 -1
  349. data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +1 -1
  350. data/db/migrate/20141215232040_remove_token_permissions_table.rb +1 -1
  351. data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +1 -1
  352. data/db/migrate/20141217215630_update_product_slug_index.rb +1 -1
  353. data/db/migrate/20141218025915_rename_identifier_to_number_for_payment.rb +1 -1
  354. data/db/migrate/20150118210639_create_spree_store_credits.rb +24 -0
  355. data/db/migrate/20150118211500_create_spree_store_credit_categories.rb +8 -0
  356. data/db/migrate/20150118212051_create_spree_store_credit_events.rb +17 -0
  357. data/db/migrate/20150118212101_create_spree_store_credit_types.rb +10 -0
  358. data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +1 -1
  359. data/db/migrate/20150122145607_add_resellable_to_return_items.rb +1 -1
  360. data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +1 -1
  361. data/db/migrate/20150128032538_remove_environment_from_tracker.rb +1 -1
  362. data/db/migrate/20150128060325_remove_spree_configurations.rb +1 -1
  363. data/db/migrate/20150216173445_add_index_to_spree_stock_items_variant_id.rb +1 -1
  364. data/db/migrate/20150309161154_ensure_payments_have_numbers.rb +1 -1
  365. data/db/migrate/20150314013438_add_missing_indexes_on_spree_tables.rb +67 -0
  366. data/db/migrate/20150317174308_remove_duplicated_indexes_from_multi_columns.rb +18 -0
  367. data/db/migrate/20150324104002_remove_user_index_from_spree_state_changes.rb +14 -0
  368. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +1 -1
  369. data/db/migrate/20150522071831_add_position_to_spree_payment_methods.rb +5 -0
  370. data/db/migrate/20150522181728_add_deleted_at_to_friendly_id_slugs.rb +1 -1
  371. data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +1 -1
  372. data/db/migrate/20150626181949_add_taxable_adjustment_total_to_line_item.rb +19 -0
  373. data/db/migrate/20150627090949_migrate_payment_methods_display.rb +12 -0
  374. data/db/migrate/20150707204155_enable_acts_as_paranoid_on_calculators.rb +1 -1
  375. data/db/migrate/20150714154102_spree_payment_method_store_credits.rb +12 -0
  376. data/db/migrate/20150726141425_rename_has_and_belongs_to_associations_to_model_names.rb +18 -0
  377. data/db/migrate/20150727191614_spree_store_credit_types.rb +11 -0
  378. data/db/migrate/20150819154308_add_discontinued_to_products_and_variants.rb +68 -0
  379. data/db/migrate/20151220072838_remove_shipping_method_id_from_spree_orders.rb +13 -0
  380. data/db/migrate/20160207191757_add_id_column_to_earlier_habtm_tables.rb +16 -0
  381. data/db/migrate/20160219165458_add_indexes.rb +14 -0
  382. data/db/migrate/20160509064646_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +10 -0
  383. data/db/migrate/20160511071954_acts_as_taggable_on_spree_migration.rb +40 -0
  384. data/db/migrate/20160511072249_change_collation_for_spree_tag_names.rb +9 -0
  385. data/db/migrate/20160511072335_add_missing_indexes_to_spree_taggings.rb +14 -0
  386. data/db/migrate/20160608090604_add_zipcode_required_to_spree_countries.rb +7 -0
  387. data/db/migrate/20161014145148_add_created_at_to_variant.rb +8 -0
  388. data/db/migrate/20161014152814_add_null_false_to_spree_variants_timestamps.rb +6 -0
  389. data/lib/generators/spree/custom_user/custom_user_generator.rb +1 -1
  390. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +3 -3
  391. data/lib/generators/spree/custom_user/templates/migration.rb.tt +2 -2
  392. data/lib/generators/spree/dummy/dummy_generator.rb +11 -11
  393. data/lib/generators/spree/dummy/templates/rails/application.rb +1 -1
  394. data/lib/generators/spree/dummy/templates/rails/database.yml +38 -28
  395. data/lib/generators/spree/dummy/templates/rails/test.rb +4 -3
  396. data/lib/generators/spree/install/install_generator.rb +37 -13
  397. data/lib/spree/core/controller_helpers/auth.rb +1 -1
  398. data/lib/spree/core/controller_helpers/common.rb +6 -6
  399. data/lib/spree/core/controller_helpers/order.rb +9 -10
  400. data/lib/spree/core/controller_helpers/respond_with.rb +1 -1
  401. data/lib/spree/core/controller_helpers/search.rb +1 -1
  402. data/lib/spree/core/controller_helpers/store.rb +29 -0
  403. data/lib/spree/core/delegate_belongs_to.rb +4 -4
  404. data/lib/spree/core/engine.rb +39 -20
  405. data/lib/spree/core/environment.rb +1 -1
  406. data/lib/spree/core/importer/order.rb +37 -40
  407. data/lib/spree/core/importer/product.rb +2 -2
  408. data/lib/spree/core/number_generator.rb +52 -0
  409. data/lib/spree/core/product_duplicator.rb +1 -1
  410. data/lib/spree/core/product_filters.rb +2 -2
  411. data/lib/spree/core/search/base.rb +4 -3
  412. data/lib/spree/core/version.rb +1 -1
  413. data/lib/spree/core.rb +16 -0
  414. data/lib/spree/i18n/initializer.rb +1 -1
  415. data/lib/spree/localized_number.rb +3 -1
  416. data/lib/spree/permitted_attributes.rb +6 -3
  417. data/lib/spree/testing_support/caching.rb +3 -3
  418. data/lib/spree/testing_support/common_rake.rb +3 -3
  419. data/lib/spree/testing_support/controller_requests.rb +4 -4
  420. data/lib/spree/testing_support/factories/address_factory.rb +1 -1
  421. data/lib/spree/testing_support/factories/country_factory.rb +2 -2
  422. data/lib/spree/testing_support/factories/line_item_factory.rb +0 -1
  423. data/lib/spree/testing_support/factories/order_factory.rb +3 -2
  424. data/lib/spree/testing_support/factories/payment_factory.rb +5 -0
  425. data/lib/spree/testing_support/factories/payment_method_factory.rb +8 -0
  426. data/lib/spree/testing_support/factories/promotion_rule_factory.rb +5 -0
  427. data/lib/spree/testing_support/factories/refund_factory.rb +9 -1
  428. data/lib/spree/testing_support/factories/return_authorization_factory.rb +2 -0
  429. data/lib/spree/testing_support/factories/state_factory.rb +2 -2
  430. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +9 -0
  431. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -0
  432. data/lib/spree/testing_support/factories/store_credit_factory.rb +17 -0
  433. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +11 -0
  434. data/lib/spree/testing_support/factories/tag_factory.rb +5 -0
  435. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  436. data/lib/spree/testing_support/factories/zone_member_factory.rb +6 -0
  437. data/lib/spree/testing_support/factories.rb +3 -3
  438. data/lib/spree/testing_support/kernel.rb +18 -0
  439. data/lib/spree/testing_support/microdata.rb +189 -0
  440. data/lib/spree/testing_support/order_walkthrough.rb +4 -4
  441. data/lib/tasks/core.rake +69 -1
  442. data/lib/tasks/exchanges.rake +2 -2
  443. data/spec/fixtures/microdata.html +22 -0
  444. data/spec/fixtures/microdata_itemref.html +15 -0
  445. data/spec/fixtures/microdata_no_itemscope.html +20 -0
  446. data/spec/helpers/base_helper_spec.rb +74 -11
  447. data/spec/helpers/products_helper_spec.rb +80 -15
  448. data/spec/lib/i18n_spec.rb +13 -13
  449. data/spec/lib/search/base_spec.rb +18 -18
  450. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +6 -4
  451. data/spec/lib/spree/core/controller_helpers/order_spec.rb +15 -0
  452. data/spec/lib/spree/core/controller_helpers/store_spec.rb +56 -0
  453. data/spec/lib/spree/core/importer/order_spec.rb +227 -124
  454. data/spec/lib/spree/core/number_generator_spec.rb +175 -0
  455. data/spec/lib/spree/core_spec.rb +23 -0
  456. data/spec/lib/spree/localized_number_spec.rb +11 -1
  457. data/spec/lib/spree/money_spec.rb +6 -6
  458. data/spec/mailers/order_mailer_spec.rb +11 -13
  459. data/spec/mailers/reimbursement_mailer_spec.rb +2 -2
  460. data/spec/mailers/shipment_mailer_spec.rb +26 -8
  461. data/spec/mailers/test_mailer_spec.rb +16 -2
  462. data/spec/models/option_type_prototype_spec.rb +9 -0
  463. data/spec/models/spree/ability_spec.rb +20 -15
  464. data/spec/models/spree/address_spec.rb +144 -33
  465. data/spec/models/spree/adjustable/adjuster/base_spec.rb +10 -0
  466. data/spec/models/spree/adjustable/adjuster/promotion_spec.rb +211 -0
  467. data/spec/models/spree/adjustable/adjuster/tax_spec.rb +86 -0
  468. data/spec/models/spree/adjustable/adjustments_updater_spec.rb +2 -262
  469. data/spec/models/spree/adjustment_spec.rb +28 -2
  470. data/spec/models/spree/app_configuration_spec.rb +6 -3
  471. data/spec/models/spree/asset_spec.rb +9 -6
  472. data/spec/models/spree/calculator/default_tax_spec.rb +39 -14
  473. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +1 -1
  474. data/spec/models/spree/calculator/flexi_rate_spec.rb +6 -6
  475. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +1 -1
  476. data/spec/models/spree/calculator/price_sack_spec.rb +2 -2
  477. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +4 -8
  478. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -4
  479. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +2 -2
  480. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +6 -6
  481. data/spec/models/spree/calculator/shipping/per_item_spec.rb +2 -2
  482. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +1 -1
  483. data/spec/models/spree/calculator/tiered_percent_spec.rb +1 -1
  484. data/spec/models/spree/calculator_spec.rb +3 -3
  485. data/spec/models/spree/classification_spec.rb +1 -1
  486. data/spec/models/spree/concerns/user_methods_spec.rb +82 -0
  487. data/spec/models/spree/concerns/vat_price_calculation_spec.rb +66 -0
  488. data/spec/models/spree/country_spec.rb +45 -8
  489. data/spec/models/spree/credit_card_spec.rb +13 -9
  490. data/spec/models/spree/customer_return_spec.rb +4 -26
  491. data/spec/models/spree/exchange_spec.rb +1 -1
  492. data/spec/models/spree/gateway/bogus_simple.rb +1 -1
  493. data/spec/models/spree/gateway/bogus_spec.rb +1 -1
  494. data/spec/models/spree/gateway_spec.rb +8 -1
  495. data/spec/models/spree/image_spec.rb +4 -1
  496. data/spec/models/spree/inventory_unit_spec.rb +35 -21
  497. data/spec/models/spree/line_item_spec.rb +100 -21
  498. data/spec/models/spree/option_type_spec.rb +3 -3
  499. data/spec/models/spree/option_value_spec.rb +8 -3
  500. data/spec/models/spree/order/address_spec.rb +1 -1
  501. data/spec/models/spree/order/adjustments_spec.rb +1 -1
  502. data/spec/models/spree/order/callbacks_spec.rb +3 -3
  503. data/spec/models/spree/order/checkout_spec.rb +99 -93
  504. data/spec/models/spree/order/currency_updater_spec.rb +4 -4
  505. data/spec/models/spree/order/finalizing_spec.rb +5 -8
  506. data/spec/models/spree/order/helpers_spec.rb +1 -1
  507. data/spec/models/spree/order/payment_spec.rb +21 -21
  508. data/spec/models/spree/order/risk_assessment_spec.rb +1 -1
  509. data/spec/models/spree/order/state_machine_spec.rb +4 -8
  510. data/spec/models/spree/order/store_credit_spec.rb +426 -0
  511. data/spec/models/spree/order/tax_spec.rb +13 -13
  512. data/spec/models/spree/order/totals_spec.rb +2 -2
  513. data/spec/models/spree/order/updating_spec.rb +4 -4
  514. data/spec/models/spree/order/validations_spec.rb +2 -2
  515. data/spec/models/spree/order_contents_spec.rb +45 -4
  516. data/spec/models/spree/order_inventory_spec.rb +28 -17
  517. data/spec/models/spree/order_merger_spec.rb +3 -1
  518. data/spec/models/spree/order_spec.rb +188 -96
  519. data/spec/models/spree/order_updater_spec.rb +43 -32
  520. data/spec/models/spree/payment/gateway_options_spec.rb +10 -2
  521. data/spec/models/spree/payment/store_credit_spec.rb +60 -0
  522. data/spec/models/spree/payment_method/store_credit_spec.rb +291 -0
  523. data/spec/models/spree/payment_method_spec.rb +22 -14
  524. data/spec/models/spree/payment_spec.rb +75 -82
  525. data/spec/models/spree/preference_spec.rb +1 -1
  526. data/spec/models/spree/preferences/configuration_spec.rb +2 -2
  527. data/spec/models/spree/preferences/preferable_spec.rb +15 -19
  528. data/spec/models/spree/preferences/scoped_store_spec.rb +1 -1
  529. data/spec/models/spree/preferences/store_spec.rb +3 -3
  530. data/spec/models/spree/price_spec.rb +87 -1
  531. data/spec/models/spree/product/scopes_spec.rb +39 -4
  532. data/spec/models/spree/product_duplicator_spec.rb +2 -2
  533. data/spec/models/spree/product_filter_spec.rb +2 -2
  534. data/spec/models/spree/product_option_type_spec.rb +6 -2
  535. data/spec/models/spree/product_promotion_rule_spec.rb +9 -0
  536. data/spec/models/spree/product_property_spec.rb +16 -1
  537. data/spec/models/spree/product_spec.rb +196 -41
  538. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +63 -0
  539. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +6 -6
  540. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +1 -1
  541. data/spec/models/spree/promotion/rules/country_spec.rb +36 -0
  542. data/spec/models/spree/promotion/rules/first_order_spec.rb +11 -11
  543. data/spec/models/spree/promotion/rules/item_total_spec.rb +1 -1
  544. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +1 -1
  545. data/spec/models/spree/promotion/rules/product_spec.rb +8 -8
  546. data/spec/models/spree/promotion/rules/taxon_spec.rb +1 -1
  547. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +3 -3
  548. data/spec/models/spree/promotion/rules/user_spec.rb +15 -7
  549. data/spec/models/spree/promotion_action_spec.rb +2 -2
  550. data/spec/models/spree/promotion_category_spec.rb +1 -1
  551. data/spec/models/spree/promotion_handler/cart_spec.rb +1 -1
  552. data/spec/models/spree/promotion_handler/coupon_spec.rb +28 -28
  553. data/spec/models/spree/promotion_handler/page_spec.rb +6 -6
  554. data/spec/models/spree/promotion_rule_spec.rb +2 -2
  555. data/spec/models/spree/promotion_rule_taxon_spec.rb +9 -0
  556. data/spec/models/spree/promotion_rule_user_spec.rb +9 -0
  557. data/spec/models/spree/promotion_spec.rb +141 -65
  558. data/spec/models/spree/property_prototype_spec.rb +9 -0
  559. data/spec/models/spree/property_spec.rb +1 -1
  560. data/spec/models/spree/prototype_spec.rb +1 -1
  561. data/spec/models/spree/prototype_taxon_spec.rb +9 -0
  562. data/spec/models/spree/refund_reason_spec.rb +20 -0
  563. data/spec/models/spree/refund_spec.rb +1 -1
  564. data/spec/models/spree/reimbursement/credit_spec.rb +1 -1
  565. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +1 -1
  566. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +1 -1
  567. data/spec/models/spree/reimbursement_performer_spec.rb +1 -1
  568. data/spec/models/spree/reimbursement_spec.rb +3 -30
  569. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +18 -6
  570. data/spec/models/spree/reimbursement_type/credit_spec.rb +1 -1
  571. data/spec/models/spree/reimbursement_type/exchange_spec.rb +1 -1
  572. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +1 -1
  573. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +101 -0
  574. data/spec/models/spree/return_authorization_reason_spec.rb +7 -0
  575. data/spec/models/spree/return_authorization_spec.rb +3 -23
  576. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +1 -1
  577. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +1 -1
  578. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +1 -1
  579. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +1 -1
  580. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +1 -1
  581. data/spec/models/spree/return_item_spec.rb +51 -2
  582. data/spec/models/spree/returns_calculator_spec.rb +2 -2
  583. data/spec/models/spree/role_spec.rb +7 -0
  584. data/spec/models/spree/shipment_spec.rb +24 -22
  585. data/spec/models/spree/shipping_calculator_spec.rb +5 -5
  586. data/spec/models/spree/shipping_category_spec.rb +15 -1
  587. data/spec/models/spree/shipping_method_spec.rb +11 -4
  588. data/spec/models/spree/shipping_rate_spec.rb +40 -41
  589. data/spec/models/spree/state_spec.rb +13 -2
  590. data/spec/models/spree/stock/availability_validator_spec.rb +1 -1
  591. data/spec/models/spree/stock/content_item_spec.rb +9 -0
  592. data/spec/models/spree/stock/coordinator_spec.rb +13 -3
  593. data/spec/models/spree/stock/differentiator_spec.rb +1 -1
  594. data/spec/models/spree/stock/estimator_spec.rb +60 -12
  595. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +1 -1
  596. data/spec/models/spree/stock/package_spec.rb +6 -18
  597. data/spec/models/spree/stock/packer_spec.rb +1 -1
  598. data/spec/models/spree/stock/prioritizer_spec.rb +7 -7
  599. data/spec/models/spree/stock/quantifier_spec.rb +61 -32
  600. data/spec/models/spree/stock/splitter/backordered_spec.rb +1 -1
  601. data/spec/models/spree/stock/splitter/base_spec.rb +1 -1
  602. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +3 -3
  603. data/spec/models/spree/stock_item_spec.rb +30 -8
  604. data/spec/models/spree/stock_location_spec.rb +5 -5
  605. data/spec/models/spree/stock_movement_spec.rb +101 -37
  606. data/spec/models/spree/stock_transfer_spec.rb +1 -1
  607. data/spec/models/spree/store_credit_event_spec.rb +101 -0
  608. data/spec/models/spree/store_credit_spec.rb +786 -0
  609. data/spec/models/spree/store_spec.rb +40 -12
  610. data/spec/models/spree/tax_category_spec.rb +7 -2
  611. data/spec/models/spree/tax_rate_spec.rb +288 -109
  612. data/spec/models/spree/taxon_spec.rb +15 -4
  613. data/spec/models/spree/taxonomy_spec.rb +2 -2
  614. data/spec/models/spree/tracker_spec.rb +1 -1
  615. data/spec/models/spree/user_spec.rb +114 -41
  616. data/spec/models/spree/variant_spec.rb +310 -15
  617. data/spec/models/spree/zone_member_spec.rb +38 -0
  618. data/spec/models/spree/zone_spec.rb +38 -10
  619. data/spec/spec_helper.rb +5 -0
  620. data/spec/support/concerns/{adjustment_source_spec.rb → adjustment_source.rb} +0 -0
  621. data/spec/support/concerns/{default_price_spec.rb → default_price.rb} +9 -0
  622. data/spree_core.gemspec +12 -13
  623. data/vendor/assets/javascripts/jquery.payment.js +239 -84
  624. metadata +136 -65
  625. data/CHANGELOG.md +0 -4
  626. data/app/models/concerns/spree/number_generator.rb +0 -39
  627. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -24
@@ -0,0 +1,67 @@
1
+ class AddMissingIndexesOnSpreeTables < ActiveRecord::Migration[4.2]
2
+ def change
3
+ if data_source_exists?(:spree_promotion_rules_users) && !index_exists?(:spree_promotion_rules_users,
4
+ [:user_id, :promotion_rule_id],
5
+ name: 'index_promotion_rules_users_on_user_id_and_promotion_rule_id')
6
+ add_index :spree_promotion_rules_users,
7
+ [:user_id, :promotion_rule_id],
8
+ name: 'index_promotion_rules_users_on_user_id_and_promotion_rule_id'
9
+ end
10
+
11
+ if data_source_exists?(:spree_products_promotion_rules) && !index_exists?(:spree_products_promotion_rules,
12
+ [:promotion_rule_id, :product_id],
13
+ name: 'index_products_promotion_rules_on_promotion_rule_and_product')
14
+ add_index :spree_products_promotion_rules,
15
+ [:promotion_rule_id, :product_id],
16
+ name: 'index_products_promotion_rules_on_promotion_rule_and_product'
17
+ end
18
+
19
+ unless index_exists? :spree_orders, :canceler_id
20
+ add_index :spree_orders, :canceler_id
21
+ end
22
+
23
+ unless index_exists? :spree_orders, :store_id
24
+ add_index :spree_orders, :store_id
25
+ end
26
+
27
+ if data_source_exists?(:spree_orders_promotions) && !index_exists?(:spree_orders_promotions, [:promotion_id, :order_id])
28
+ add_index :spree_orders_promotions, [:promotion_id, :order_id]
29
+ end
30
+
31
+ if data_source_exists?(:spree_properties_prototypes) && !index_exists?(:spree_properties_prototypes, :prototype_id)
32
+ add_index :spree_properties_prototypes, :prototype_id
33
+ end
34
+
35
+ if data_source_exists?(:spree_properties_prototypes) && !index_exists?(:spree_properties_prototypes,
36
+ [:prototype_id, :property_id],
37
+ name: 'index_properties_prototypes_on_prototype_and_property')
38
+ add_index :spree_properties_prototypes,
39
+ [:prototype_id, :property_id],
40
+ name: 'index_properties_prototypes_on_prototype_and_property'
41
+ end
42
+
43
+ if data_source_exists?(:spree_taxons_prototypes) && !index_exists?(:spree_taxons_prototypes, [:prototype_id, :taxon_id])
44
+ add_index :spree_taxons_prototypes, [:prototype_id, :taxon_id]
45
+ end
46
+
47
+ if data_source_exists?(:spree_option_types_prototypes) && !index_exists?(:spree_option_types_prototypes, :prototype_id)
48
+ add_index :spree_option_types_prototypes, :prototype_id
49
+ end
50
+
51
+ if data_source_exists?(:spree_option_types_prototypes) && !index_exists?(:spree_option_types_prototypes,
52
+ [:prototype_id, :option_type_id],
53
+ name: 'index_option_types_prototypes_on_prototype_and_option_type')
54
+ add_index :spree_option_types_prototypes,
55
+ [:prototype_id, :option_type_id],
56
+ name: 'index_option_types_prototypes_on_prototype_and_option_type'
57
+ end
58
+
59
+ if data_source_exists?(:spree_option_values_variants) && !index_exists?(:spree_option_values_variants,
60
+ [:option_value_id, :variant_id],
61
+ name: 'index_option_values_variants_on_option_value_and_variant')
62
+ add_index :spree_option_values_variants,
63
+ [:option_value_id, :variant_id],
64
+ name: 'index_option_values_variants_on_option_value_and_variant'
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,18 @@
1
+ class RemoveDuplicatedIndexesFromMultiColumns < ActiveRecord::Migration[4.2]
2
+ def change
3
+ remove_index :spree_adjustments, name: "index_adjustments_on_order_id"
4
+ remove_index :spree_option_types_prototypes, :prototype_id
5
+ add_index :spree_option_types_prototypes, :option_type_id
6
+ remove_index :spree_option_values_variants, name: 'index_option_values_variants_on_option_value_and_variant'
7
+ remove_index :spree_option_values_variants, :variant_id
8
+ add_index :spree_option_values_variants, :option_value_id
9
+ remove_index :spree_orders, :user_id
10
+ remove_index :spree_orders_promotions, [:order_id, :promotion_id]
11
+ add_index :spree_orders_promotions, :order_id
12
+ remove_index :spree_products_promotion_rules, name: "index_products_promotion_rules_on_promotion_rule_id"
13
+ remove_index :spree_promotion_rules_users, name: "index_promotion_rules_users_on_user_id"
14
+ remove_index :spree_properties_prototypes, :prototype_id
15
+ remove_index :spree_stock_items, :stock_location_id
16
+ remove_index :spree_taxons_prototypes, :prototype_id
17
+ end
18
+ end
@@ -0,0 +1,14 @@
1
+ class RemoveUserIndexFromSpreeStateChanges < ActiveRecord::Migration[4.2]
2
+ def up
3
+ if index_exists? :spree_state_changes, :user_id
4
+ remove_index :spree_state_changes, :user_id
5
+ end
6
+
7
+ end
8
+
9
+ def down
10
+ unless index_exists? :spree_state_changes, :user_id
11
+ add_index :spree_state_changes, :user_id
12
+ end
13
+ end
14
+ end
@@ -1,4 +1,4 @@
1
- class FixAdjustmentOrderId < ActiveRecord::Migration
1
+ class FixAdjustmentOrderId < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  say 'Populate order_id from adjustable_id where appropriate'
4
4
  execute(<<-SQL.squish)
@@ -0,0 +1,5 @@
1
+ class AddPositionToSpreePaymentMethods < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :spree_payment_methods, :position, :integer, default: 0
4
+ end
5
+ end
@@ -1,4 +1,4 @@
1
- class AddDeletedAtToFriendlyIdSlugs < ActiveRecord::Migration
1
+ class AddDeletedAtToFriendlyIdSlugs < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :friendly_id_slugs, :deleted_at, :datetime
4
4
  add_index :friendly_id_slugs, :deleted_at
@@ -1,4 +1,4 @@
1
- class IncreaseScaleOnPreTaxAmounts < ActiveRecord::Migration
1
+ class IncreaseScaleOnPreTaxAmounts < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  # set pre_tax_amount on shipments to discounted_amount - included_tax_total
4
4
  # so that the null: false option on the shipment pre_tax_amount doesn't generate
@@ -0,0 +1,19 @@
1
+ class AddTaxableAdjustmentTotalToLineItem < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :spree_line_items, :taxable_adjustment_total, :decimal,
4
+ precision: 10, scale: 2, default: 0.0, null: false
5
+ add_column :spree_line_items, :non_taxable_adjustment_total, :decimal,
6
+ precision: 10, scale: 2, default: 0.0, null: false
7
+
8
+ add_column :spree_shipments, :taxable_adjustment_total, :decimal,
9
+ precision: 10, scale: 2, default: 0.0, null: false
10
+ add_column :spree_shipments, :non_taxable_adjustment_total, :decimal,
11
+ precision: 10, scale: 2, default: 0.0, null: false
12
+
13
+ add_column :spree_orders, :taxable_adjustment_total, :decimal,
14
+ precision: 10, scale: 2, default: 0.0, null: false
15
+ add_column :spree_orders, :non_taxable_adjustment_total, :decimal,
16
+ precision: 10, scale: 2, default: 0.0, null: false
17
+ # TODO migration that updates old orders
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ class MigratePaymentMethodsDisplay < ActiveRecord::Migration[4.2]
2
+ def change
3
+ Spree::PaymentMethod.all.each do |method|
4
+ if method.display_on.blank?
5
+ method.display_on = "both"
6
+ method.save
7
+ end
8
+ end
9
+
10
+ change_column :spree_payment_methods, :display_on, :string, default: "both"
11
+ end
12
+ end
@@ -1,4 +1,4 @@
1
- class EnableActsAsParanoidOnCalculators < ActiveRecord::Migration
1
+ class EnableActsAsParanoidOnCalculators < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :spree_calculators, :deleted_at, :datetime
4
4
  add_index :spree_calculators, :deleted_at
@@ -0,0 +1,12 @@
1
+ class SpreePaymentMethodStoreCredits < ActiveRecord::Migration[4.2]
2
+ def up
3
+ # Reload to pick up new position column for acts_as_list
4
+ Spree::PaymentMethod.reset_column_information
5
+ Spree::PaymentMethod::StoreCredit.find_or_create_by(name: 'Store Credit', description: 'Store Credit',
6
+ active: true, display_on: 'back_end')
7
+ end
8
+
9
+ def down
10
+ Spree::PaymentMethod.find_by(type: 'Spree::PaymentMethod::StoreCredit', name: 'Store Credit').try(&:destroy)
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ class RenameHasAndBelongsToAssociationsToModelNames < ActiveRecord::Migration[4.2]
2
+ def change
3
+ {
4
+ 'spree_option_types_prototypes' => 'spree_option_type_prototypes',
5
+ 'spree_option_values_variants' => 'spree_option_value_variants',
6
+ 'spree_orders_promotions' => 'spree_order_promotions',
7
+ 'spree_products_promotion_rules' => 'spree_product_promotion_rules',
8
+ 'spree_taxons_promotion_rules' => 'spree_promotion_rule_taxons',
9
+ 'spree_promotion_rules_users' => 'spree_promotion_rule_users',
10
+ 'spree_properties_prototypes' => 'spree_property_prototypes',
11
+ 'spree_taxons_prototypes' => 'spree_prototype_taxons',
12
+ 'spree_roles_users' => 'spree_role_users',
13
+ 'spree_shipping_methods_zones' => 'spree_shipping_method_zones'
14
+ }.each do |old_name, new_name|
15
+ rename_table old_name, new_name
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ class SpreeStoreCreditTypes < ActiveRecord::Migration[4.2]
2
+ def up
3
+ Spree::StoreCreditType.find_or_create_by(name: 'Expiring', priority: 1)
4
+ Spree::StoreCreditType.find_or_create_by(name: 'Non-expiring', priority: 2)
5
+ end
6
+
7
+ def down
8
+ Spree::StoreCreditType.find_by(name: 'Expiring').try(&:destroy)
9
+ Spree::StoreCreditType.find_by(name: 'Non-expiring').try(&:destroy)
10
+ end
11
+ end
@@ -0,0 +1,68 @@
1
+ class AddDiscontinuedToProductsAndVariants < ActiveRecord::Migration[4.2]
2
+ def up
3
+ add_column :spree_products, :discontinue_on, :datetime, after: :available_on
4
+ add_column :spree_variants, :discontinue_on, :datetime, after: :deleted_at
5
+
6
+ add_index :spree_products, :discontinue_on
7
+ add_index :spree_variants, :discontinue_on
8
+
9
+ puts "Warning: This migration changes the meaning of 'deleted'. Before this change, 'deleted' meant products that were no longer being sold in your store. After this change, you can only delete a product or variant if it has not already been sold to a customer (a model-level check enforces this). Instead, you should use the new field 'discontinue_on' for products or variants which were sold in the past but no longer for sale. This fixes bugs when other objects are attached to deleted products and variants. (Even though acts_as_paranoid gem keeps the records in the database, most associations are automatically scoped to exclude the deleted records.) In thew meaning of 'deleted,' you can still use the delete function on products & variants which are *truly user-error mistakes*, specifically before an order has been placed or the items have gone on sale. You also must use the soft-delete function (which still works after this change) to clean up slug (product) and SKU (variant) duplicates. Otherwise, you should generally over ever need to discontinue products.
10
+
11
+ Data Fix: We will attempt to reverse engineer the old meaning of 'deleted' (no longer for sale) to the new database field 'discontinue_on'. However, since Slugs and SKUs cannot be duplicated on Products and Variants, we cannot gaurantee this to be foolproof if you have deteled Products and Variants that have duplicate Slugs or SKUs in non-deleted records. In these cases, we recommend you use the additional rake task to clean up your old records (see rake db:fix_orphan_line_items). If you have such records, this migration will leave them in place, preferring the non-deleted records over the deleted ones. However, since old line items will still be associated with deleted objects, you will still the bugs in your app until you run:
12
+
13
+ rake db:fix_orphan_line_items
14
+
15
+ We will print out a report of the data we are fixing now: "
16
+
17
+ Spree::Product.only_deleted.each do |product|
18
+ # determine if there is a slug duplicate
19
+ the_dup = Spree::Product.find_by(slug: product.slug)
20
+ if the_dup.nil?
21
+ # check to see if there are line items attached to any variants
22
+ if Spree::Variant.with_deleted.where(product_id: product.id).map(&:line_items).any?
23
+ puts "recovering deleted product id #{product.id} ... this will un-delete the record and set it to be discontinued"
24
+
25
+ old_deleted = product.deleted_at
26
+ product.update_column(:deleted_at, nil) # for some reason .recover doesn't appear to be a method
27
+ product.update_column(:discontinue_on, old_deleted)
28
+ else
29
+ puts "leaving product id #{product.id} deleted because there are no line items attached to it..."
30
+ end
31
+ else
32
+ puts "leaving product id #{product.id} deleted because there is a duplicate slug for '#{product.slug}' (product id #{the_dup.id}) "
33
+ if product.variants.map(&:line_items).any?
34
+ puts "WARNING: You may still have bugs with product id #{product.id} (#{product.name}) until you run rake db:fix_orphan_line_items"
35
+ end
36
+ end
37
+ end
38
+
39
+ Spree::Variant.only_deleted.each do |variant|
40
+ # determine if there is a slug duplicate
41
+ the_dup = Spree::Variant.find_by(sku: variant.sku)
42
+ if the_dup.nil?
43
+ # check to see if there are line items attached to any variants
44
+ if variant.line_items.any?
45
+ puts "recovering deleted variant id #{variant.id} ... this will un-delete the record and set it to be discontinued"
46
+ old_deleted = variant.deleted_at
47
+ variant.update_column(:deleted_at, nil) # for some reason .recover doesn't appear to be a method
48
+ variant.update_column(:discontinue_on, old_deleted)
49
+ else
50
+ puts "leaving variant id #{variant.id} deleted because there are no line items attached to it..."
51
+ end
52
+ else
53
+ puts "leaving variant id #{variant.id} deleted because there is a duplicate SKU for '#{variant.sku}' (variant id #{the_dup.id}) "
54
+ if variant.line_items.any?
55
+ puts "WARNING: You may still have bugs with variant id #{variant.id} (#{variant.name}) until you run rake db:fix_orphan_line_items"
56
+ end
57
+ end
58
+ end
59
+ end
60
+
61
+ def down
62
+ execute "UPDATE spree_products SET deleted_at = discontinue_on WHERE deleted_at IS NULL"
63
+ execute "UPDATE spree_variants SET deleted_at = discontinue_on WHERE deleted_at IS NULL"
64
+
65
+ remove_column :spree_products, :discontinue_on
66
+ remove_column :spree_variants, :discontinue_on
67
+ end
68
+ end
@@ -0,0 +1,13 @@
1
+ class RemoveShippingMethodIdFromSpreeOrders < ActiveRecord::Migration[4.2]
2
+ def up
3
+ if column_exists?(:spree_orders, :shipping_method_id, :integer)
4
+ remove_column :spree_orders, :shipping_method_id, :integer
5
+ end
6
+ end
7
+
8
+ def down
9
+ unless column_exists?(:spree_orders, :shipping_method_id, :integer)
10
+ add_column :spree_orders, :shipping_method_id, :integer
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ class AddIdColumnToEarlierHabtmTables < ActiveRecord::Migration[4.2]
2
+ def up
3
+ add_column :spree_option_type_prototypes, :id, :primary_key
4
+ add_column :spree_option_value_variants, :id, :primary_key
5
+ add_column :spree_order_promotions, :id, :primary_key
6
+ add_column :spree_product_promotion_rules, :id, :primary_key
7
+ add_column :spree_promotion_rule_users, :id, :primary_key
8
+ add_column :spree_property_prototypes, :id, :primary_key
9
+ add_column :spree_role_users, :id, :primary_key
10
+ add_column :spree_shipping_method_zones, :id, :primary_key
11
+ end
12
+
13
+ def down
14
+ raise ActiveRecord::IrreversibleMigration
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ class AddIndexes < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_index :spree_assets, :position
4
+ add_index :spree_option_types, :name
5
+ add_index :spree_option_values, :name
6
+ add_index :spree_prices, :variant_id
7
+ add_index :spree_properties, :name
8
+ add_index :spree_roles, :name
9
+ add_index :spree_shipping_categories, :name
10
+ add_index :spree_taxons, :lft
11
+ add_index :spree_taxons, :rgt
12
+ add_index :spree_taxons, :name
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ class RemoveCounterCacheFromSpreeVariantsToSpreeStockItems < ActiveRecord::Migration[4.2]
2
+ def up
3
+ if column_exists?(:spree_variants, :stock_items_count)
4
+ remove_column :spree_variants, :stock_items_count
5
+ end
6
+ end
7
+
8
+ def down
9
+ end
10
+ end
@@ -0,0 +1,40 @@
1
+ class ActsAsTaggableOnSpreeMigration < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ create_table :spree_tags do |t|
4
+ t.string :name
5
+ t.integer :taggings_count, default: 0
6
+ end
7
+
8
+ create_table :spree_taggings do |t|
9
+ t.references :tag
10
+
11
+ # You should make sure that the column created is
12
+ # long enough to store the required class names.
13
+ t.references :taggable, polymorphic: true
14
+ t.references :tagger, polymorphic: true
15
+
16
+ # Limit is created to prevent MySQL error on index
17
+ # length for MyISAM table type: http://bit.ly/vgW2Ql
18
+ t.string :context, limit: 128
19
+
20
+ t.datetime :created_at
21
+ end
22
+
23
+ add_index :spree_tags, :name, unique: true
24
+ add_index :spree_taggings,
25
+ [
26
+ :tag_id,
27
+ :taggable_id,
28
+ :taggable_type,
29
+ :context,
30
+ :tagger_id,
31
+ :tagger_type
32
+ ],
33
+ unique: true, name: "spree_taggings_idx"
34
+ end
35
+
36
+ def self.down
37
+ drop_table :spree_taggings
38
+ drop_table :spree_tags
39
+ end
40
+ end
@@ -0,0 +1,9 @@
1
+ # This migration is added to circumvent issue #623 and have special characters
2
+ # work properly
3
+ class ChangeCollationForSpreeTagNames < ActiveRecord::Migration[4.2]
4
+ def up
5
+ if ActsAsTaggableOn::Utils.using_mysql?
6
+ execute("ALTER TABLE spree_tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ class AddMissingIndexesToSpreeTaggings < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_index :spree_taggings, :tag_id
4
+ add_index :spree_taggings, :taggable_id
5
+ add_index :spree_taggings, :taggable_type
6
+ add_index :spree_taggings, :tagger_id
7
+ add_index :spree_taggings, :context
8
+
9
+ add_index :spree_taggings, [:tagger_id, :tagger_type]
10
+ add_index :spree_taggings,
11
+ [:taggable_id, :taggable_type, :tagger_id, :context],
12
+ name: "spree_taggings_idy"
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ class AddZipcodeRequiredToSpreeCountries < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :spree_countries, :zipcode_required, :boolean, default: true
4
+ Spree::Country.reset_column_information
5
+ Spree::Country.where(iso: Spree::Address::NO_ZIPCODE_ISO_CODES).update_all(zipcode_required: false)
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ class AddCreatedAtToVariant < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :spree_variants, :created_at, :datetime
4
+ Spree::Variant.reset_column_information
5
+ Spree::Variant.unscoped.where.not(updated_at: nil).update_all('created_at = updated_at')
6
+ Spree::Variant.unscoped.where(updated_at: nil).update_all(created_at: Time.current, updated_at: Time.current)
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ class AddNullFalseToSpreeVariantsTimestamps < ActiveRecord::Migration[5.0]
2
+ def change
3
+ change_column_null :spree_variants, :created_at, false
4
+ change_column_null :spree_variants, :updated_at, false
5
+ end
6
+ end
@@ -35,7 +35,7 @@ module Spree
35
35
  end
36
36
 
37
37
  def self.next_migration_number(dirname)
38
- if ActiveRecord::Base.timestamped_migrations
38
+ if ApplicationRecord.timestamped_migrations
39
39
  sleep 1 # make sure to get a different migration every time
40
40
  Time.new.utc.strftime("%Y%m%d%H%M%S")
41
41
  else
@@ -30,7 +30,7 @@ module Spree
30
30
  end
31
31
  end
32
32
 
33
- ApplicationController.send :include, Spree::AuthenticationHelpers
34
- ApplicationController.send :include, Spree::CurrentUserHelpers
33
+ ApplicationController.include Spree::AuthenticationHelpers
34
+ ApplicationController.include Spree::CurrentUserHelpers
35
35
 
36
- Spree::Api::BaseController.send :include, Spree::CurrentUserHelpers
36
+ Spree::Api::BaseController.include Spree::CurrentUserHelpers
@@ -1,6 +1,6 @@
1
- class AddSpreeFieldsToCustomUserTable < ActiveRecord::Migration
1
+ class AddSpreeFieldsToCustomUserTable < ActiveRecord::Migration[4.2]
2
2
  def up
3
- add_column <%= table_name.inspect %>, :spree_api_key, :string, :limit => 48
3
+ add_column <%= table_name.inspect %>, :spree_api_key, :string, limit: 48
4
4
  add_column <%= table_name.inspect %>, :ship_address_id, :integer
5
5
  add_column <%= table_name.inspect %>, :bill_address_id, :integer
6
6
  end
@@ -6,8 +6,8 @@ module Spree
6
6
  class DummyGenerator < Rails::Generators::Base
7
7
  desc "Creates blank Rails application, installs Spree and all sample data"
8
8
 
9
- class_option :lib_name, :default => ''
10
- class_option :database, :default => ''
9
+ class_option :lib_name, default: ''
10
+ class_option :database, default: ''
11
11
 
12
12
  def self.source_paths
13
13
  paths = self.superclass.source_paths
@@ -41,14 +41,14 @@ module Spree
41
41
  @lib_name = options[:lib_name]
42
42
  @database = options[:database]
43
43
 
44
- template "rails/database.yml", "#{dummy_path}/config/database.yml", :force => true
45
- template "rails/boot.rb", "#{dummy_path}/config/boot.rb", :force => true
46
- template "rails/application.rb", "#{dummy_path}/config/application.rb", :force => true
47
- template "rails/routes.rb", "#{dummy_path}/config/routes.rb", :force => true
48
- template "rails/test.rb", "#{dummy_path}/config/environments/test.rb", :force => true
49
- template "rails/script/rails", "#{dummy_path}/spec/dummy/script/rails", :force => true
50
- template "initializers/custom_user.rb", "#{dummy_path}/config/initializers/custom_user.rb", :force => true
51
- template "initializers/devise.rb", "#{dummy_path}/config/initializers/devise.rb", :force => true
44
+ template "rails/database.yml", "#{dummy_path}/config/database.yml", force: true
45
+ template "rails/boot.rb", "#{dummy_path}/config/boot.rb", force: true
46
+ template "rails/application.rb", "#{dummy_path}/config/application.rb", force: true
47
+ template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true
48
+ template "rails/test.rb", "#{dummy_path}/config/environments/test.rb", force: true
49
+ template "rails/script/rails", "#{dummy_path}/spec/dummy/script/rails", force: true
50
+ template "initializers/custom_user.rb", "#{dummy_path}/config/initializers/custom_user.rb", force: true
51
+ template "initializers/devise.rb", "#{dummy_path}/config/initializers/devise.rb", force: true
52
52
  end
53
53
 
54
54
  def test_dummy_inject_extension_requirements
@@ -91,7 +91,7 @@ begin
91
91
  rescue LoadError
92
92
  # #{requirement} is not available.
93
93
  end
94
- ], :before => /require '#{@lib_name}'/, :verbose => true
94
+ ], before: /require '#{@lib_name}'/, verbose: true
95
95
  end
96
96
 
97
97
  def dummy_path
@@ -2,7 +2,7 @@ require File.expand_path('../boot', __FILE__)
2
2
 
3
3
  require 'rails/all'
4
4
 
5
- Bundler.require(*Rails.groups(:assets => %w(development test)))
5
+ Bundler.require(*Rails.groups(assets: %w(development test)))
6
6
 
7
7
  require '<%= lib_name %>'
8
8
 
@@ -1,6 +1,11 @@
1
1
  <% if agent_number = ENV['TC_AGENT_NUMBER']
2
2
  database_prefix = agent_number + '_'
3
3
  end %>
4
+ <% if options[:lib_name]
5
+ lib_name = options[:lib_name].gsub('/', '_')
6
+ end %>
7
+ <% db_password = ENV['DB_PASSWORD'] %>
8
+ <% db_username = ENV['DB_USERNAME'] %>
4
9
  <% case ENV['DB']
5
10
  when 'sqlite' %>
6
11
  development:
@@ -14,44 +19,49 @@ production:
14
19
  adapter: sqlite3
15
20
  database: db/spree_production.sqlite3
16
21
  <% when 'mysql' %>
17
- development:
22
+ mysql: &mysql
18
23
  adapter: mysql2
19
- database: <%= database_prefix %><%= options[:lib_name] %>_spree_development
20
24
  encoding: utf8
25
+ <% unless db_username.blank? %>
26
+ username: <%= db_username %>
27
+ <% end %>
28
+ <% unless db_password.blank? %>
29
+ password: <%= db_password %>
30
+ <% end %>
31
+
32
+ development:
33
+ <<: *mysql
34
+ database: <%= database_prefix %><%= lib_name %>_spree_development
21
35
  test:
22
- adapter: mysql2
23
- database: <%= database_prefix %><%= options[:lib_name] %>_spree_test
24
- encoding: utf8
36
+ <<: *mysql
37
+ database: <%= database_prefix %><%= lib_name %>_spree_test
25
38
  production:
26
- adapter: mysql2
27
- database: <%= database_prefix %><%= options[:lib_name] %>_spree_production
28
- encoding: utf8
39
+ <<: *mysql
40
+ database: <%= database_prefix %><%= lib_name %>_spree_production
29
41
  <% when 'postgres' %>
30
42
  <% db_host = ENV['DB_HOST'] %>
31
- development:
43
+ postgres: &postgres
32
44
  adapter: postgresql
33
- database: <%= database_prefix %><%= options[:lib_name] %>_spree_development
34
- username: postgres
35
- min_messages: warning
36
- <% unless db_host.blank? %>
45
+ <% unless db_username.blank? %>
46
+ username: <%= db_username || 'postgres' %>
47
+ <% end %>
48
+ <% unless db_password.blank? %>
49
+ password: <%= db_password %>
50
+ <% end %>
51
+ <% unless db_host.blank? %>
37
52
  host: <%= db_host %>
38
- <% end %>
39
- test:
40
- adapter: postgresql
41
- database: <%= database_prefix %><%= options[:lib_name] %>_spree_test
42
- username: postgres
53
+ <% end %>
43
54
  min_messages: warning
44
- <% unless db_host.blank? %>
45
- host: <%= db_host %>
46
- <% end %>
55
+
56
+ development:
57
+ <<: *postgres
58
+ database: <%= database_prefix %><%= lib_name %>_spree_development
59
+ test:
60
+ <<: *postgres
61
+ database: <%= database_prefix %><%= lib_name %>_spree_test
47
62
  production:
48
- adapter: postgresql
49
- database: <%= database_prefix %><%= options[:lib_name] %>_spree_production
50
- username: postgres
51
- min_messages: warning
52
- <% unless db_host.blank? %>
53
- host: <%= db_host %>
54
- <% end %>
63
+ <<: *postgres
64
+ database: <%= database_prefix %><%= lib_name %>_spree_production
55
65
  <% else %>
56
66
  development:
57
67
  adapter: sqlite3
@@ -8,8 +8,8 @@ Dummy::Application.configure do
8
8
  config.cache_classes = true
9
9
 
10
10
  # Configure static asset server for tests with Cache-Control for performance
11
- config.serve_static_files = true
12
- config.static_cache_control = "public, max-age=3600"
11
+ config.public_file_server.enabled = true
12
+ config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
13
13
 
14
14
  # Show full error reports and disable caching
15
15
  config.consider_all_requests_local = true
@@ -27,7 +27,8 @@ Dummy::Application.configure do
27
27
  # The :test delivery method accumulates sent emails in the
28
28
  # ActionMailer::Base.deliveries array.
29
29
  config.action_mailer.delivery_method = :test
30
- ActionMailer::Base.default :from => "spree@example.com"
30
+ ActionMailer::Base.default from: "spree@example.com"
31
+
31
32
 
32
33
  # Print deprecation notices to the stderr
33
34
  config.active_support.deprecation = :stderr