solidus_core 2.10.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +31 -2
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/mailers/spree/base_mailer.rb +4 -0
  5. data/app/mailers/spree/order_mailer.rb +1 -1
  6. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
  7. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  8. data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
  9. data/app/models/concerns/spree/default_price.rb +1 -1
  10. data/app/models/concerns/spree/soft_deletable.rb +18 -0
  11. data/app/models/concerns/spree/user_address_book.rb +86 -32
  12. data/app/models/concerns/spree/user_methods.rb +3 -2
  13. data/app/models/spree/ability.rb +34 -10
  14. data/app/models/spree/address/name.rb +49 -0
  15. data/app/models/spree/address/state_validator.rb +71 -0
  16. data/app/models/spree/address.rb +94 -17
  17. data/app/models/spree/adjustment.rb +1 -1
  18. data/app/models/spree/base.rb +1 -0
  19. data/app/models/spree/calculator/default_tax.rb +1 -1
  20. data/app/models/spree/calculator/percent_per_item.rb +4 -4
  21. data/app/models/spree/calculator/price_sack.rb +1 -1
  22. data/app/models/spree/credit_card.rb +2 -2
  23. data/app/models/spree/customer_return.rb +4 -2
  24. data/app/models/spree/exchange.rb +1 -1
  25. data/app/models/spree/image/active_storage_attachment.rb +21 -0
  26. data/app/models/spree/inventory_unit.rb +1 -1
  27. data/app/models/spree/line_item.rb +13 -4
  28. data/app/models/spree/option_type.rb +1 -1
  29. data/app/models/spree/option_value.rb +2 -2
  30. data/app/models/spree/order/checkout.rb +1 -0
  31. data/app/models/spree/order.rb +91 -20
  32. data/app/models/spree/order_inventory.rb +16 -4
  33. data/app/models/spree/order_merger.rb +6 -4
  34. data/app/models/spree/order_promotion.rb +1 -1
  35. data/app/models/spree/order_updater.rb +11 -10
  36. data/app/models/spree/payment/cancellation.rb +3 -3
  37. data/app/models/spree/payment/processing.rb +54 -30
  38. data/app/models/spree/payment.rb +3 -3
  39. data/app/models/spree/payment_method.rb +8 -9
  40. data/app/models/spree/preference.rb +1 -1
  41. data/app/models/spree/price.rb +2 -8
  42. data/app/models/spree/product/scopes.rb +10 -5
  43. data/app/models/spree/product.rb +19 -14
  44. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  45. data/app/models/spree/promotion.rb +18 -7
  46. data/app/models/spree/promotion_action.rb +1 -7
  47. data/app/models/spree/promotion_code.rb +6 -1
  48. data/app/models/spree/promotion_code_batch.rb +1 -1
  49. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  50. data/app/models/spree/promotion_rule.rb +1 -1
  51. data/app/models/spree/promotion_rule_role.rb +1 -1
  52. data/app/models/spree/refund.rb +54 -12
  53. data/app/models/spree/reimbursement.rb +27 -0
  54. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
  55. data/app/models/spree/return_authorization.rb +1 -1
  56. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  57. data/app/models/spree/return_item.rb +21 -10
  58. data/app/models/spree/role.rb +1 -1
  59. data/app/models/spree/shipment.rb +2 -2
  60. data/app/models/spree/shipping_calculator.rb +1 -1
  61. data/app/models/spree/shipping_manifest.rb +2 -2
  62. data/app/models/spree/shipping_method.rb +2 -9
  63. data/app/models/spree/shipping_rate.rb +1 -1
  64. data/app/models/spree/shipping_rate_tax.rb +1 -1
  65. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  66. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  67. data/app/models/spree/stock/package.rb +1 -1
  68. data/app/models/spree/stock/simple_coordinator.rb +1 -3
  69. data/app/models/spree/stock_item.rb +2 -8
  70. data/app/models/spree/stock_movement.rb +2 -0
  71. data/app/models/spree/store.rb +1 -1
  72. data/app/models/spree/store_credit.rb +1 -7
  73. data/app/models/spree/store_credit_category.rb +30 -3
  74. data/app/models/spree/store_credit_event.rb +1 -7
  75. data/app/models/spree/store_credit_reason.rb +0 -4
  76. data/app/models/spree/tax/tax_helpers.rb +1 -1
  77. data/app/models/spree/tax_category.rb +2 -8
  78. data/app/models/spree/tax_rate.rb +7 -7
  79. data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
  80. data/app/models/spree/taxon.rb +1 -1
  81. data/app/models/spree/user_address.rb +8 -2
  82. data/app/models/spree/variant.rb +7 -13
  83. data/app/models/spree/variant_property_rule.rb +5 -1
  84. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  85. data/app/models/spree/zone.rb +1 -1
  86. data/config/locales/en.yml +44 -5
  87. data/db/default/spree/countries.rb +1 -1
  88. data/db/default/spree/states.rb +12 -4
  89. data/db/default/spree/store_credit.rb +2 -2
  90. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  91. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  92. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  93. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  94. data/lib/generators/solidus/install/install_generator.rb +253 -0
  95. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
  96. data/lib/generators/spree/install/install_generator.rb +7 -189
  97. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  98. data/lib/spree/app_configuration.rb +117 -51
  99. data/lib/spree/awesome_nested_set_override.rb +44 -0
  100. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  101. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  102. data/lib/spree/core/controller_helpers/order.rb +8 -7
  103. data/lib/spree/core/controller_helpers/strong_parameters.rb +21 -7
  104. data/lib/spree/core/engine.rb +39 -2
  105. data/lib/spree/core/importer/order.rb +26 -11
  106. data/lib/spree/core/permalinks.rb +1 -3
  107. data/lib/spree/core/product_filters.rb +6 -5
  108. data/lib/spree/core/state_machines/order.rb +249 -0
  109. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  110. data/lib/spree/core/state_machines.rb +20 -1
  111. data/lib/spree/core/version.rb +1 -1
  112. data/lib/spree/core.rb +5 -11
  113. data/lib/spree/encryptor.rb +25 -0
  114. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  115. data/lib/spree/event/configuration.rb +11 -6
  116. data/lib/spree/event/subscriber.rb +38 -18
  117. data/lib/spree/event/subscriber_registry.rb +92 -0
  118. data/lib/spree/event.rb +40 -7
  119. data/lib/spree/i18n.rb +1 -1
  120. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  121. data/lib/spree/paranoia_deprecations.rb +32 -12
  122. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  123. data/lib/spree/permission_sets/default_customer.rb +16 -16
  124. data/lib/spree/permission_sets/order_display.rb +11 -11
  125. data/lib/spree/permission_sets/order_management.rb +1 -1
  126. data/lib/spree/permission_sets/product_display.rb +9 -9
  127. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  128. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  129. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  130. data/lib/spree/permission_sets/stock_display.rb +2 -2
  131. data/lib/spree/permission_sets/stock_management.rb +1 -1
  132. data/lib/spree/permission_sets/user_display.rb +3 -3
  133. data/lib/spree/permission_sets/user_management.rb +4 -3
  134. data/lib/spree/permitted_attributes.rb +79 -9
  135. data/lib/spree/preferences/preferable.rb +4 -3
  136. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  137. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  138. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  139. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  140. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  141. data/lib/spree/testing_support/common_rake.rb +3 -3
  142. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  143. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  144. data/lib/spree/testing_support/dummy_app.rb +44 -23
  145. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  146. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  147. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  148. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  149. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  150. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  151. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  152. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  153. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  154. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  155. data/lib/spree/testing_support/factories/user_factory.rb +4 -1
  156. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  157. data/lib/spree/testing_support/job_helpers.rb +24 -0
  158. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  159. data/lib/spree/testing_support/preferences.rb +3 -1
  160. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  161. data/lib/spree/testing_support/translations.rb +25 -0
  162. data/solidus_core.gemspec +8 -5
  163. metadata +81 -359
  164. data/script/rails +0 -10
  165. data/spec/fixtures/thinking-cat.jpg +0 -0
  166. data/spec/helpers/base_helper_spec.rb +0 -168
  167. data/spec/helpers/products_helper_spec.rb +0 -202
  168. data/spec/helpers/taxons_helper_spec.rb +0 -43
  169. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  170. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  171. data/spec/lib/i18n_spec.rb +0 -97
  172. data/spec/lib/search/base_spec.rb +0 -91
  173. data/spec/lib/search/variant_spec.rb +0 -115
  174. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  175. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  176. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  177. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  178. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  179. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  180. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  181. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  182. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -41
  183. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  184. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  185. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  186. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  187. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  188. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  189. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  190. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  191. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  192. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  193. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  194. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  195. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  196. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  197. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  198. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  199. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  201. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  202. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  204. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  205. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  206. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  207. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  208. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  209. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  210. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  212. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  214. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  215. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  216. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  217. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  218. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  219. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  221. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  222. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  223. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  224. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  226. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  227. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  228. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  229. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  230. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  231. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  232. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  233. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  234. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  235. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  237. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  238. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  240. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  241. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  242. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  243. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  244. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  245. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  246. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  247. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  248. data/spec/lib/spree/core/version_spec.rb +0 -19
  249. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  250. data/spec/lib/spree/event_spec.rb +0 -130
  251. data/spec/lib/spree/localized_number_spec.rb +0 -45
  252. data/spec/lib/spree/migrations_spec.rb +0 -32
  253. data/spec/lib/spree/money_spec.rb +0 -298
  254. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  255. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  256. data/spec/lib/tasks/dummy_task.rake +0 -12
  257. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  258. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  259. data/spec/mailers/carton_mailer_spec.rb +0 -44
  260. data/spec/mailers/order_mailer_spec.rb +0 -117
  261. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  262. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  263. data/spec/mailers/test_mailer_spec.rb +0 -13
  264. data/spec/models/spree/ability_spec.rb +0 -279
  265. data/spec/models/spree/address_spec.rb +0 -399
  266. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  267. data/spec/models/spree/adjustment_spec.rb +0 -339
  268. data/spec/models/spree/asset_spec.rb +0 -25
  269. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  270. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  271. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  272. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  273. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  274. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  275. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  276. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  277. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  278. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  279. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  280. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  281. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  282. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  283. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  284. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  285. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  286. data/spec/models/spree/calculator_spec.rb +0 -43
  287. data/spec/models/spree/carton_spec.rb +0 -145
  288. data/spec/models/spree/classification_spec.rb +0 -126
  289. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  290. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  291. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  292. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  293. data/spec/models/spree/country_spec.rb +0 -154
  294. data/spec/models/spree/credit_card_spec.rb +0 -373
  295. data/spec/models/spree/customer_return_spec.rb +0 -294
  296. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  297. data/spec/models/spree/exchange_spec.rb +0 -76
  298. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  299. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  300. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  301. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  302. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  303. data/spec/models/spree/gateway_spec.rb +0 -14
  304. data/spec/models/spree/image_spec.rb +0 -25
  305. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  306. data/spec/models/spree/line_item_spec.rb +0 -240
  307. data/spec/models/spree/option_type_spec.rb +0 -16
  308. data/spec/models/spree/option_value_spec.rb +0 -52
  309. data/spec/models/spree/order/address_spec.rb +0 -52
  310. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  311. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  312. data/spec/models/spree/order/checkout_spec.rb +0 -740
  313. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  314. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  315. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  316. data/spec/models/spree/order/payment_spec.rb +0 -280
  317. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  318. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  319. data/spec/models/spree/order/totals_spec.rb +0 -26
  320. data/spec/models/spree/order/validations_spec.rb +0 -17
  321. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  322. data/spec/models/spree/order_capturing_spec.rb +0 -16
  323. data/spec/models/spree/order_contents_spec.rb +0 -362
  324. data/spec/models/spree/order_inventory_spec.rb +0 -285
  325. data/spec/models/spree/order_merger_spec.rb +0 -162
  326. data/spec/models/spree/order_mutex_spec.rb +0 -89
  327. data/spec/models/spree/order_promotion_spec.rb +0 -33
  328. data/spec/models/spree/order_shipping_spec.rb +0 -247
  329. data/spec/models/spree/order_spec.rb +0 -1687
  330. data/spec/models/spree/order_taxation_spec.rb +0 -128
  331. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  332. data/spec/models/spree/order_updater_spec.rb +0 -556
  333. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  334. data/spec/models/spree/payment_create_spec.rb +0 -195
  335. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  336. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  337. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  338. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  339. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  340. data/spec/models/spree/payment_method_spec.rb +0 -408
  341. data/spec/models/spree/payment_spec.rb +0 -1270
  342. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  343. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  344. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  345. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  346. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  347. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  348. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  349. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  350. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  351. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  352. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  353. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  354. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  355. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  356. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  357. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  358. data/spec/models/spree/preference_spec.rb +0 -79
  359. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  360. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  361. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  362. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  363. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  364. data/spec/models/spree/preferences/store_spec.rb +0 -40
  365. data/spec/models/spree/price_spec.rb +0 -150
  366. data/spec/models/spree/product/scopes_spec.rb +0 -164
  367. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  368. data/spec/models/spree/product_filter_spec.rb +0 -28
  369. data/spec/models/spree/product_property_spec.rb +0 -20
  370. data/spec/models/spree/product_spec.rb +0 -584
  371. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  372. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  373. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  374. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  375. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  376. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  377. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  378. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  379. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  380. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  381. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  382. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  383. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -226
  384. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  385. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  386. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  387. data/spec/models/spree/promotion_action_spec.rb +0 -44
  388. data/spec/models/spree/promotion_category_spec.rb +0 -19
  389. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  390. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  391. data/spec/models/spree/promotion_code_spec.rb +0 -206
  392. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  393. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  394. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  395. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  396. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  397. data/spec/models/spree/promotion_spec.rb +0 -945
  398. data/spec/models/spree/refund_spec.rb +0 -200
  399. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  400. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  401. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  402. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  403. data/spec/models/spree/reimbursement_spec.rb +0 -278
  404. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  405. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  406. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  407. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  408. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  409. data/spec/models/spree/return_authorization_spec.rb +0 -226
  410. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  411. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  412. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  413. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  414. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  415. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  416. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  417. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  418. data/spec/models/spree/return_item_spec.rb +0 -785
  419. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  420. data/spec/models/spree/shipment_spec.rb +0 -914
  421. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  422. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  423. data/spec/models/spree/shipping_method_spec.rb +0 -292
  424. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  425. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  426. data/spec/models/spree/state_spec.rb +0 -43
  427. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  428. data/spec/models/spree/stock/availability_spec.rb +0 -143
  429. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  430. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  431. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  432. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  433. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  434. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  435. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  436. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  437. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  438. data/spec/models/spree/stock/package_spec.rb +0 -182
  439. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  440. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  441. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  442. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  443. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  444. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  445. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  446. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  447. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  448. data/spec/models/spree/stock_item_spec.rb +0 -348
  449. data/spec/models/spree/stock_location_spec.rb +0 -288
  450. data/spec/models/spree/stock_movement_spec.rb +0 -58
  451. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  452. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  453. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  454. data/spec/models/spree/store_credit_spec.rb +0 -900
  455. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  456. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  457. data/spec/models/spree/store_spec.rb +0 -156
  458. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  459. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  460. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  461. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  462. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  463. data/spec/models/spree/tax_category_spec.rb +0 -50
  464. data/spec/models/spree/tax_rate_spec.rb +0 -317
  465. data/spec/models/spree/taxon_spec.rb +0 -197
  466. data/spec/models/spree/taxonomy_spec.rb +0 -15
  467. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  468. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  469. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  470. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  471. data/spec/models/spree/user_spec.rb +0 -247
  472. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  473. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  474. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  475. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  476. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  477. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  478. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  479. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  480. data/spec/models/spree/variant_spec.rb +0 -862
  481. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  482. data/spec/models/spree/wallet_spec.rb +0 -155
  483. data/spec/models/spree/zone_spec.rb +0 -248
  484. data/spec/rails_helper.rb +0 -46
  485. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  486. data/spec/spec_helper.rb +0 -36
  487. data/spec/support/big_decimal.rb +0 -7
  488. data/spec/support/concerns/default_price.rb +0 -44
  489. data/spec/support/concerns/payment_source.rb +0 -66
  490. data/spec/support/concerns/working_factories.rb +0 -15
  491. data/spec/support/dummy_ability.rb +0 -7
  492. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  493. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  494. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  495. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ class AddDefaultBillngFlagToUserAddresses < ActiveRecord::Migration[5.2]
3
+ def change
4
+ add_column :spree_user_addresses, :default_billing, :boolean, default: false
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddBccEmailToSpreeStores < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :spree_stores, :bcc_email, :string
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDiscontinueOnToSpreeProducts < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :spree_products, :discontinue_on, :datetime
6
+ end
7
+ end
@@ -0,0 +1,253 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module Solidus
6
+ # @private
7
+ class InstallGenerator < Rails::Generators::Base
8
+ CORE_MOUNT_ROUTE = "mount Spree::Core::Engine"
9
+
10
+ PAYMENT_METHODS = {
11
+ 'paypal' => 'solidus_paypal_commerce_platform',
12
+ 'none' => nil,
13
+ }
14
+
15
+ class_option :migrate, type: :boolean, default: true, banner: 'Run Solidus migrations'
16
+ class_option :seed, type: :boolean, default: true, banner: 'Load seed data (migrations must be run)'
17
+ class_option :sample, type: :boolean, default: true, banner: 'Load sample data (migrations must be run)'
18
+ class_option :auto_accept, type: :boolean
19
+ class_option :user_class, type: :string
20
+ class_option :admin_email, type: :string
21
+ class_option :admin_password, type: :string
22
+ class_option :lib_name, type: :string, default: 'spree'
23
+ class_option :with_authentication, type: :boolean, default: true
24
+ class_option :enforce_available_locales, type: :boolean, default: nil
25
+ class_option :payment_method,
26
+ type: :string,
27
+ enum: PAYMENT_METHODS.keys,
28
+ default: PAYMENT_METHODS.keys.first,
29
+ desc: "Indicates which payment method to install."
30
+
31
+ def self.source_paths
32
+ paths = superclass.source_paths
33
+ paths << File.expand_path('../templates', "../../#{__FILE__}")
34
+ paths << File.expand_path('../templates', "../#{__FILE__}")
35
+ paths << File.expand_path('templates', __dir__)
36
+ paths.flatten
37
+ end
38
+
39
+ def prepare_options
40
+ @run_migrations = options[:migrate]
41
+ @load_seed_data = options[:seed]
42
+ @load_sample_data = options[:sample]
43
+
44
+ unless @run_migrations
45
+ @load_seed_data = false
46
+ @load_sample_data = false
47
+ end
48
+ end
49
+
50
+ def add_files
51
+ template 'config/initializers/spree.rb.tt', 'config/initializers/spree.rb'
52
+ end
53
+
54
+ def additional_tweaks
55
+ return unless File.exist? 'public/robots.txt'
56
+
57
+ append_file "public/robots.txt", <<-ROBOTS.strip_heredoc
58
+ User-agent: *
59
+ Disallow: /checkout
60
+ Disallow: /cart
61
+ Disallow: /orders
62
+ Disallow: /user
63
+ Disallow: /account
64
+ Disallow: /api
65
+ Disallow: /password
66
+ ROBOTS
67
+ end
68
+
69
+ def setup_assets
70
+ @lib_name = 'spree'
71
+
72
+ empty_directory 'app/assets/images'
73
+
74
+ %w{javascripts stylesheets images}.each do |path|
75
+ empty_directory "vendor/assets/#{path}/spree/frontend" if defined? Spree::Frontend || Rails.env.test?
76
+ empty_directory "vendor/assets/#{path}/spree/backend" if defined? Spree::Backend || Rails.env.test?
77
+ end
78
+
79
+ if defined? Spree::Frontend || Rails.env.test?
80
+ template "vendor/assets/javascripts/spree/frontend/all.js"
81
+ template "vendor/assets/stylesheets/spree/frontend/all.css"
82
+ end
83
+
84
+ if defined? Spree::Backend || Rails.env.test?
85
+ template "vendor/assets/javascripts/spree/backend/all.js"
86
+ template "vendor/assets/stylesheets/spree/backend/all.css"
87
+ end
88
+ end
89
+
90
+ def create_overrides_directory
91
+ empty_directory "app/overrides"
92
+ end
93
+
94
+ def configure_application
95
+ application <<-RUBY
96
+ # Load application's model / class decorators
97
+ initializer 'spree.decorators' do |app|
98
+ config.to_prepare do
99
+ Dir.glob(Rails.root.join('app/**/*_decorator*.rb')) do |path|
100
+ require_dependency(path)
101
+ end
102
+ end
103
+ end
104
+ RUBY
105
+
106
+ if !options[:enforce_available_locales].nil?
107
+ application <<-RUBY
108
+ # Prevent this deprecation message: https://github.com/svenfuchs/i18n/commit/3b6e56e
109
+ I18n.enforce_available_locales = #{options[:enforce_available_locales]}
110
+ RUBY
111
+ end
112
+ end
113
+
114
+ def plugin_install_preparation
115
+ @plugins_to_be_installed = []
116
+ @plugin_generators_to_run = []
117
+ end
118
+
119
+ def install_auth_plugin
120
+ if options[:with_authentication] && (options[:auto_accept] || !no?("
121
+ Solidus has a default authentication extension that uses Devise.
122
+ You can find more info at https://github.com/solidusio/solidus_auth_devise.
123
+
124
+ Would you like to install it? (y/n)"))
125
+
126
+ @plugins_to_be_installed << 'solidus_auth_devise'
127
+ @plugin_generators_to_run << 'solidus:auth:install'
128
+ end
129
+ end
130
+
131
+ def install_payment_method
132
+ name = options[:payment_method]
133
+
134
+ unless options[:auto_accept]
135
+ available_names = PAYMENT_METHODS.keys
136
+
137
+ name = ask("
138
+ You can select a payment method to be included in the installation process.
139
+ Please select a payment method name:", limited_to: available_names, default: available_names.first)
140
+ end
141
+
142
+ gem_name = PAYMENT_METHODS.fetch(name)
143
+
144
+ if gem_name
145
+ @plugins_to_be_installed << gem_name
146
+ @plugin_generators_to_run << "#{gem_name}:install"
147
+ end
148
+ end
149
+
150
+ def include_seed_data
151
+ append_file "db/seeds.rb", <<-RUBY.strip_heredoc
152
+
153
+ Spree::Core::Engine.load_seed if defined?(Spree::Core)
154
+ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
155
+ RUBY
156
+ end
157
+
158
+ def install_migrations
159
+ say_status :copying, "migrations"
160
+ `rake railties:install:migrations`
161
+ end
162
+
163
+ def create_database
164
+ say_status :creating, "database"
165
+ rake 'db:create'
166
+ end
167
+
168
+ def run_bundle_install_if_needed_by_plugins
169
+ @plugins_to_be_installed.each do |plugin_name|
170
+ gem plugin_name
171
+ end
172
+
173
+ bundle_cleanly{ run "bundle install" } if @plugins_to_be_installed.any?
174
+ run "spring stop"
175
+
176
+ @plugin_generators_to_run.each do |plugin_generator_name|
177
+ generate "#{plugin_generator_name} --skip_migrations=false"
178
+ end
179
+ end
180
+
181
+ def run_migrations
182
+ if @run_migrations
183
+ say_status :running, "migrations"
184
+
185
+ rake 'db:migrate VERBOSE=false'
186
+ else
187
+ say_status :skipping, "migrations (don't forget to run rake db:migrate)"
188
+ end
189
+ end
190
+
191
+ def populate_seed_data
192
+ if @load_seed_data
193
+ say_status :loading, "seed data"
194
+ rake_options = []
195
+ rake_options << "AUTO_ACCEPT=1" if options[:auto_accept]
196
+ rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
197
+ rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
198
+
199
+ rake("db:seed #{rake_options.join(' ')}")
200
+ else
201
+ say_status :skipping, "seed data (you can always run rake db:seed)"
202
+ end
203
+ end
204
+
205
+ def load_sample_data
206
+ if @load_sample_data
207
+ say_status :loading, "sample data"
208
+ rake 'spree_sample:load'
209
+ else
210
+ say_status :skipping, "sample data (you can always run rake spree_sample:load)"
211
+ end
212
+ end
213
+
214
+ def install_routes
215
+ routes_file_path = File.join('config', 'routes.rb')
216
+ unless File.read(routes_file_path).include? CORE_MOUNT_ROUTE
217
+ insert_into_file routes_file_path, after: "Rails.application.routes.draw do\n" do
218
+ <<-RUBY
219
+ # This line mounts Solidus's routes at the root of your application.
220
+ # This means, any requests to URLs such as /products, will go to Spree::ProductsController.
221
+ # If you would like to change where this engine is mounted, simply change the :at option to something different.
222
+ #
223
+ # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree"
224
+ #{CORE_MOUNT_ROUTE}, at: '/'
225
+
226
+ RUBY
227
+ end
228
+ end
229
+
230
+ unless options[:quiet]
231
+ puts "*" * 50
232
+ puts "We added the following line to your application's config/routes.rb file:"
233
+ puts " "
234
+ puts " #{CORE_MOUNT_ROUTE}, at: '/'"
235
+ end
236
+ end
237
+
238
+ def complete
239
+ unless options[:quiet]
240
+ puts "*" * 50
241
+ puts "Solidus has been installed successfully. You're all ready to go!"
242
+ puts " "
243
+ puts "Enjoy!"
244
+ end
245
+ end
246
+
247
+ private
248
+
249
+ def bundle_cleanly(&block)
250
+ Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&block) : Bundler.with_clean_env(&block)
251
+ end
252
+ end
253
+ end
@@ -10,6 +10,15 @@ Spree.config do |config|
10
10
  # from address for transactional emails
11
11
  config.mails_from = "store@example.com"
12
12
 
13
+ # Use combined first and last name attribute in HTML views and API responses
14
+ config.use_combined_first_and_last_name_in_address = true
15
+
16
+ # Use legacy Spree::Order state machine
17
+ config.use_legacy_order_state_machine = false
18
+
19
+ # Use the legacy address' state validation logic
20
+ config.use_legacy_address_state_validator = false
21
+
13
22
  # Uncomment to stop tracking inventory levels in the application
14
23
  # config.track_inventory_levels = false
15
24
 
@@ -22,6 +31,33 @@ Spree.config do |config|
22
31
  config.image_attachment_module = 'Spree::Image::PaperclipAttachment'
23
32
  config.taxon_attachment_module = 'Spree::Taxon::PaperclipAttachment'
24
33
 
34
+ # Disable legacy Solidus custom CanCanCan actions aliases
35
+ config.use_custom_cancancan_actions = false
36
+
37
+ # Defaults
38
+
39
+ # Set this configuration to `true` to raise an exception when
40
+ # an order is populated with a line item with a mismatching
41
+ # currency. The `false` value will just add a validation error
42
+ # and will be the only behavior accepted in future versions.
43
+ # See https://github.com/solidusio/solidus/pull/3456 for more info.
44
+ config.raise_with_invalid_currency = false
45
+
46
+ # Set this configuration to false to always redirect the user to
47
+ # /unauthorized when needed, without trying to redirect them to
48
+ # their previous location first.
49
+ config.redirect_back_on_unauthorized = true
50
+
51
+ # Set this configuration to `true` to allow promotions
52
+ # with no associated actions to be considered active for use by customers.
53
+ # See https://github.com/solidusio/solidus/pull/3749 for more info.
54
+ config.consider_actionless_promotion_active = false
55
+
56
+ # Set this configuration to `false` to avoid running validations when
57
+ # updating an order. Be careful since you can end up having inconsistent
58
+ # data in your database turning it on.
59
+ # See https://github.com/solidusio/solidus/pull/3645 for more info.
60
+ config.run_order_validations_on_order_updater = true
25
61
 
26
62
  # Permission Sets:
27
63
 
@@ -89,11 +125,6 @@ end
89
125
 
90
126
  Spree.user_class = <%= (options[:user_class].blank? ? "Spree::LegacyUser" : options[:user_class]).inspect %>
91
127
 
92
- # If you want to add a field to the whitelisted ransackable attributes,
93
- # just uncomment the following code and change it as you need.
94
- #
95
- # Spree::Model.whitelisted_ransackable_attributes << 'field'
96
-
97
128
  # Rules for avoiding to store the current path into session for redirects
98
129
  # When at least one rule is matched, the request path will not be stored
99
130
  # in session.
@@ -1,197 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails/generators'
4
- require 'bundler'
5
- require 'bundler/cli'
3
+ require 'generators/solidus/install/install_generator'
6
4
 
7
5
  module Spree
8
6
  # @private
9
- class InstallGenerator < Rails::Generators::Base
10
- CORE_MOUNT_ROUTE = "mount Spree::Core::Engine"
11
-
12
- class_option :migrate, type: :boolean, default: true, banner: 'Run Solidus migrations'
13
- class_option :seed, type: :boolean, default: true, banner: 'load seed data (migrations must be run)'
14
- class_option :sample, type: :boolean, default: true, banner: 'load sample data (migrations must be run)'
15
- class_option :auto_accept, type: :boolean
16
- class_option :user_class, type: :string
17
- class_option :admin_email, type: :string
18
- class_option :admin_password, type: :string
19
- class_option :lib_name, type: :string, default: 'spree'
20
- class_option :enforce_available_locales, type: :boolean, default: nil
21
-
22
- def self.source_paths
23
- paths = superclass.source_paths
24
- paths << File.expand_path('../templates', "../../#{__FILE__}")
25
- paths << File.expand_path('../templates', "../#{__FILE__}")
26
- paths << File.expand_path('templates', __dir__)
27
- paths.flatten
28
- end
29
-
30
- def prepare_options
31
- @run_migrations = options[:migrate]
32
- @load_seed_data = options[:seed]
33
- @load_sample_data = options[:sample]
34
-
35
- unless @run_migrations
36
- @load_seed_data = false
37
- @load_sample_data = false
38
- end
39
- end
40
-
41
- def add_files
42
- template 'config/initializers/spree.rb.tt', 'config/initializers/spree.rb'
43
- end
44
-
45
- def additional_tweaks
46
- return unless File.exist? 'public/robots.txt'
47
- append_file "public/robots.txt", <<-ROBOTS.strip_heredoc
48
- User-agent: *
49
- Disallow: /checkout
50
- Disallow: /cart
51
- Disallow: /orders
52
- Disallow: /user
53
- Disallow: /account
54
- Disallow: /api
55
- Disallow: /password
56
- ROBOTS
57
- end
58
-
59
- def setup_assets
60
- @lib_name = 'spree'
61
-
62
- empty_directory 'app/assets/images'
63
-
64
- %w{javascripts stylesheets images}.each do |path|
65
- empty_directory "vendor/assets/#{path}/spree/frontend" if defined? Spree::Frontend || Rails.env.test?
66
- empty_directory "vendor/assets/#{path}/spree/backend" if defined? Spree::Backend || Rails.env.test?
67
- end
68
-
69
- if defined? Spree::Frontend || Rails.env.test?
70
- template "vendor/assets/javascripts/spree/frontend/all.js"
71
- template "vendor/assets/stylesheets/spree/frontend/all.css"
72
- end
73
-
74
- if defined? Spree::Backend || Rails.env.test?
75
- template "vendor/assets/javascripts/spree/backend/all.js"
76
- template "vendor/assets/stylesheets/spree/backend/all.css"
77
- end
78
- end
79
-
80
- def create_overrides_directory
81
- empty_directory "app/overrides"
82
- end
83
-
84
- def configure_application
85
- application <<-RUBY
86
- # Load application's model / class decorators
87
- initializer 'spree.decorators' do |app|
88
- config.to_prepare do
89
- Dir.glob(Rails.root.join('app/**/*_decorator*.rb')) do |path|
90
- require_dependency(path)
91
- end
92
- end
93
- end
94
-
95
- # Load application's view overrides
96
- initializer 'spree.overrides' do |app|
97
- config.to_prepare do
98
- Dir.glob(Rails.root.join('app/overrides/*.rb')) do |path|
99
- require_dependency(path)
100
- end
101
- end
102
- end
103
- RUBY
104
-
105
- if !options[:enforce_available_locales].nil?
106
- application <<-RUBY
107
- # Prevent this deprecation message: https://github.com/svenfuchs/i18n/commit/3b6e56e
108
- I18n.enforce_available_locales = #{options[:enforce_available_locales]}
109
- RUBY
110
- end
111
- end
112
-
113
- def include_seed_data
114
- append_file "db/seeds.rb", <<-RUBY.strip_heredoc
115
-
116
- Spree::Core::Engine.load_seed if defined?(Spree::Core)
117
- Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
118
- RUBY
119
- end
120
-
121
- def install_migrations
122
- say_status :copying, "migrations"
123
- `rake railties:install:migrations`
124
- end
125
-
126
- def create_database
127
- say_status :creating, "database"
128
- rake 'db:create'
129
- end
130
-
131
- def run_migrations
132
- if @run_migrations
133
- say_status :running, "migrations"
134
-
135
- rake 'db:migrate VERBOSE=false'
136
- else
137
- say_status :skipping, "migrations (don't forget to run rake db:migrate)"
138
- end
139
- end
140
-
141
- def populate_seed_data
142
- if @load_seed_data
143
- say_status :loading, "seed data"
144
- rake_options = []
145
- rake_options << "AUTO_ACCEPT=1" if options[:auto_accept]
146
- rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
147
- rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
148
-
149
- rake("db:seed #{rake_options.join(' ')}")
150
- else
151
- say_status :skipping, "seed data (you can always run rake db:seed)"
152
- end
153
- end
154
-
155
- def load_sample_data
156
- if @load_sample_data
157
- say_status :loading, "sample data"
158
- rake 'spree_sample:load'
159
- else
160
- say_status :skipping, "sample data (you can always run rake spree_sample:load)"
161
- end
162
- end
163
-
164
- def install_routes
165
- routes_file_path = File.join('config', 'routes.rb')
166
- unless File.read(routes_file_path).include? CORE_MOUNT_ROUTE
167
- insert_into_file routes_file_path, after: "Rails.application.routes.draw do\n" do
168
- <<-RUBY
169
- # This line mounts Solidus's routes at the root of your application.
170
- # This means, any requests to URLs such as /products, will go to Spree::ProductsController.
171
- # If you would like to change where this engine is mounted, simply change the :at option to something different.
172
- #
173
- # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree"
174
- #{CORE_MOUNT_ROUTE}, at: '/'
175
-
176
- RUBY
177
- end
178
- end
179
-
180
- unless options[:quiet]
181
- puts "*" * 50
182
- puts "We added the following line to your application's config/routes.rb file:"
183
- puts " "
184
- puts " #{CORE_MOUNT_ROUTE}, at: '/'"
185
- end
186
- end
187
-
188
- def complete
189
- unless options[:quiet]
190
- puts "*" * 50
191
- puts "Solidus has been installed successfully. You're all ready to go!"
192
- puts " "
193
- puts "Enjoy!"
194
- end
7
+ class InstallGenerator < Solidus::InstallGenerator
8
+ def print_deprecation_warning
9
+ puts " "
10
+ puts "*" * 50
11
+ puts "spree:install generator is deprecated, please use solidus:install."
12
+ puts " "
195
13
  end
196
14
  end
197
15
  end
@@ -3,7 +3,7 @@
3
3
  module Solidus
4
4
  module Migrations
5
5
  module PromotionWithCodeHandlers
6
- class PromotionCode < ActiveRecord::Base
6
+ class PromotionCode < Spree::Base
7
7
  self.table_name = "spree_promotion_codes"
8
8
  end
9
9