solidus_core 2.10.5 → 3.0.8

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 (618) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +0 -22
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/helpers/spree/store_helper.rb +0 -11
  5. data/app/mailers/spree/base_mailer.rb +4 -0
  6. data/app/mailers/spree/carton_mailer.rb +1 -5
  7. data/app/mailers/spree/order_mailer.rb +1 -1
  8. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +71 -0
  9. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  10. data/app/models/concerns/spree/active_storage_adapter.rb +118 -0
  11. data/app/models/concerns/spree/adjustment_source.rb +0 -15
  12. data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
  13. data/app/models/concerns/spree/default_price.rb +1 -1
  14. data/app/models/concerns/spree/soft_deletable.rb +16 -0
  15. data/app/models/concerns/spree/user_address_book.rb +61 -44
  16. data/app/models/concerns/spree/user_methods.rb +23 -12
  17. data/app/models/spree/ability.rb +0 -13
  18. data/app/models/spree/address/name.rb +31 -0
  19. data/app/models/spree/address/state_validator.rb +71 -0
  20. data/app/models/spree/address.rb +17 -95
  21. data/app/models/spree/adjustment.rb +1 -29
  22. data/app/models/spree/base.rb +1 -28
  23. data/app/models/spree/calculator/default_tax.rb +1 -1
  24. data/app/models/spree/calculator/flexi_rate.rb +0 -5
  25. data/app/models/spree/calculator.rb +8 -11
  26. data/app/models/spree/country.rb +1 -6
  27. data/app/models/spree/credit_card.rb +2 -29
  28. data/app/models/spree/customer_return.rb +5 -6
  29. data/app/models/spree/exchange.rb +1 -1
  30. data/app/models/spree/image/active_storage_attachment.rb +29 -0
  31. data/app/models/spree/image/paperclip_attachment.rb +1 -1
  32. data/app/models/spree/image.rb +0 -7
  33. data/app/models/spree/inventory_unit.rb +1 -22
  34. data/app/models/spree/line_item.rb +12 -46
  35. data/app/models/spree/log_entry.rb +74 -1
  36. data/app/models/spree/option_type.rb +1 -1
  37. data/app/models/spree/option_value.rb +2 -2
  38. data/app/models/spree/order/payments.rb +2 -2
  39. data/app/models/spree/order.rb +70 -132
  40. data/app/models/spree/order_cancellations.rb +4 -24
  41. data/app/models/spree/order_inventory.rb +16 -4
  42. data/app/models/spree/order_merger.rb +7 -5
  43. data/app/models/spree/order_promotion.rb +1 -1
  44. data/app/models/spree/order_shipping.rb +6 -9
  45. data/app/models/spree/order_updater.rb +7 -15
  46. data/app/models/spree/payment/cancellation.rb +3 -22
  47. data/app/models/spree/payment/processing.rb +54 -30
  48. data/app/models/spree/payment.rb +13 -9
  49. data/app/models/spree/payment_create.rb +1 -13
  50. data/app/models/spree/payment_method/bogus_credit_card.rb +13 -9
  51. data/app/models/spree/payment_method/credit_card.rb +1 -3
  52. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +4 -4
  53. data/app/models/spree/payment_method.rb +7 -106
  54. data/app/models/spree/payment_source.rb +2 -2
  55. data/app/models/spree/preference.rb +1 -1
  56. data/app/models/spree/price.rb +3 -9
  57. data/app/models/spree/product/scopes.rb +9 -32
  58. data/app/models/spree/product.rb +24 -52
  59. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
  60. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
  61. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
  62. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  63. data/app/models/spree/promotion/rules/taxon.rb +2 -15
  64. data/app/models/spree/promotion.rb +15 -8
  65. data/app/models/spree/promotion_action.rb +5 -15
  66. data/app/models/spree/promotion_code/batch_builder.rb +0 -14
  67. data/app/models/spree/promotion_code.rb +8 -3
  68. data/app/models/spree/promotion_code_batch.rb +1 -1
  69. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  70. data/app/models/spree/promotion_rule.rb +5 -1
  71. data/app/models/spree/promotion_rule_role.rb +1 -1
  72. data/app/models/spree/refund.rb +19 -13
  73. data/app/models/spree/reimbursement.rb +11 -22
  74. data/app/models/spree/reimbursement_performer.rb +2 -8
  75. data/app/models/spree/reimbursement_type/credit.rb +1 -4
  76. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +8 -2
  77. data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
  78. data/app/models/spree/return_authorization.rb +2 -5
  79. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  80. data/app/models/spree/return_item.rb +10 -18
  81. data/app/models/spree/role.rb +1 -1
  82. data/app/models/spree/shipment.rb +3 -56
  83. data/app/models/spree/shipping_calculator.rb +1 -1
  84. data/app/models/spree/shipping_manifest.rb +2 -2
  85. data/app/models/spree/shipping_method.rb +3 -35
  86. data/app/models/spree/shipping_rate.rb +1 -3
  87. data/app/models/spree/shipping_rate_tax.rb +1 -1
  88. data/app/models/spree/state.rb +0 -4
  89. data/app/models/spree/stock/availability_validator.rb +2 -2
  90. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  91. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  92. data/app/models/spree/stock/inventory_validator.rb +2 -2
  93. data/app/models/spree/stock/package.rb +1 -1
  94. data/app/models/spree/stock/simple_coordinator.rb +7 -18
  95. data/app/models/spree/stock/splitter/base.rb +2 -7
  96. data/app/models/spree/stock_item.rb +3 -15
  97. data/app/models/spree/stock_movement.rb +2 -0
  98. data/app/models/spree/store.rb +1 -13
  99. data/app/models/spree/store_credit.rb +9 -7
  100. data/app/models/spree/store_credit_category.rb +3 -8
  101. data/app/models/spree/store_credit_event.rb +1 -7
  102. data/app/models/spree/store_credit_reason.rb +0 -4
  103. data/app/models/spree/tax/tax_helpers.rb +1 -1
  104. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
  105. data/app/models/spree/tax_category.rb +2 -8
  106. data/app/models/spree/tax_rate.rb +7 -34
  107. data/app/models/spree/taxon/active_storage_attachment.rb +13 -0
  108. data/app/models/spree/taxon/paperclip_attachment.rb +0 -4
  109. data/app/models/spree/taxon.rb +1 -12
  110. data/app/models/spree/user_address.rb +3 -2
  111. data/app/models/spree/variant.rb +8 -58
  112. data/app/models/spree/variant_property_rule.rb +5 -1
  113. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  114. data/app/models/spree/zone.rb +1 -1
  115. data/config/locales/en.yml +293 -13
  116. data/db/default/spree/countries.rb +1 -1
  117. data/db/default/spree/states.rb +12 -4
  118. data/db/default/spree/store_credit.rb +2 -2
  119. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  120. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  121. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  122. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  123. data/db/migrate/20210122110141_add_name_to_spree_addresses.rb +13 -0
  124. data/lib/generators/{spree → solidus}/install/install_generator.rb +82 -14
  125. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +4 -9
  126. data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
  127. data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
  128. data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
  129. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  130. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  131. data/lib/spree/app_configuration.rb +104 -72
  132. data/lib/spree/core/class_constantizer.rb +2 -0
  133. data/lib/spree/core/controller_helpers/auth.rb +4 -4
  134. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  135. data/lib/spree/core/controller_helpers/order.rb +8 -27
  136. data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
  137. data/lib/spree/core/controller_helpers/pricing.rb +0 -8
  138. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
  139. data/lib/spree/core/engine.rb +23 -8
  140. data/lib/spree/core/environment_extension.rb +0 -9
  141. data/lib/spree/core/importer/order.rb +24 -10
  142. data/lib/spree/core/permalinks.rb +1 -3
  143. data/lib/spree/core/product_filters.rb +5 -44
  144. data/lib/spree/core/role_configuration.rb +0 -14
  145. data/lib/spree/core/search/base.rb +0 -26
  146. data/lib/spree/core/state_machines/order.rb +249 -0
  147. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  148. data/lib/spree/core/state_machines.rb +11 -1
  149. data/lib/spree/core/validators/email.rb +2 -2
  150. data/lib/spree/core/version.rb +1 -1
  151. data/lib/spree/core.rb +11 -19
  152. data/lib/spree/deprecation.rb +1 -1
  153. data/lib/spree/encryptor.rb +25 -0
  154. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  155. data/lib/spree/event/configuration.rb +7 -7
  156. data/lib/spree/event/subscriber.rb +22 -20
  157. data/lib/spree/event/subscriber_registry.rb +94 -0
  158. data/lib/spree/event.rb +20 -18
  159. data/lib/spree/i18n.rb +0 -22
  160. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  161. data/lib/spree/money.rb +3 -18
  162. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  163. data/lib/spree/permission_sets/default_customer.rb +16 -16
  164. data/lib/spree/permission_sets/order_display.rb +11 -11
  165. data/lib/spree/permission_sets/order_management.rb +1 -1
  166. data/lib/spree/permission_sets/product_display.rb +9 -9
  167. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  168. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  169. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  170. data/lib/spree/permission_sets/stock_display.rb +2 -2
  171. data/lib/spree/permission_sets/stock_management.rb +1 -1
  172. data/lib/spree/permission_sets/user_display.rb +3 -3
  173. data/lib/spree/permission_sets/user_management.rb +4 -3
  174. data/lib/spree/permitted_attributes.rb +12 -56
  175. data/lib/spree/preferences/persistable.rb +23 -0
  176. data/lib/spree/preferences/preferable.rb +4 -3
  177. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  178. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  179. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  180. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  181. data/lib/spree/testing_support/capybara_ext.rb +3 -30
  182. data/lib/spree/testing_support/common_rake.rb +3 -3
  183. data/lib/spree/testing_support/controller_requests.rb +0 -82
  184. data/lib/spree/testing_support/dummy_app/mailer_previews/test_mailer_preview.rb +4 -0
  185. data/lib/spree/testing_support/dummy_app/migrations.rb +2 -6
  186. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  187. data/lib/spree/testing_support/dummy_app.rb +41 -24
  188. data/lib/spree/testing_support/factories/address_factory.rb +7 -4
  189. data/lib/spree/testing_support/factories/adjustment_factory.rb +10 -5
  190. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +5 -0
  191. data/lib/spree/testing_support/factories/calculator_factory.rb +5 -0
  192. data/lib/spree/testing_support/factories/carton_factory.rb +7 -2
  193. data/lib/spree/testing_support/factories/country_factory.rb +5 -0
  194. data/lib/spree/testing_support/factories/credit_card_factory.rb +5 -0
  195. data/lib/spree/testing_support/factories/customer_return_factory.rb +8 -3
  196. data/lib/spree/testing_support/factories/image_factory.rb +6 -1
  197. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +9 -4
  198. data/lib/spree/testing_support/factories/line_item_factory.rb +7 -2
  199. data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
  200. data/lib/spree/testing_support/factories/option_value_factory.rb +5 -0
  201. data/lib/spree/testing_support/factories/order_factory.rb +11 -7
  202. data/lib/spree/testing_support/factories/order_promotion_factory.rb +7 -2
  203. data/lib/spree/testing_support/factories/payment_factory.rb +9 -4
  204. data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
  205. data/lib/spree/testing_support/factories/price_factory.rb +6 -1
  206. data/lib/spree/testing_support/factories/product_factory.rb +10 -5
  207. data/lib/spree/testing_support/factories/product_option_type_factory.rb +7 -2
  208. data/lib/spree/testing_support/factories/product_property_factory.rb +7 -2
  209. data/lib/spree/testing_support/factories/promotion_category_factory.rb +5 -0
  210. data/lib/spree/testing_support/factories/promotion_code_factory.rb +7 -2
  211. data/lib/spree/testing_support/factories/promotion_factory.rb +13 -2
  212. data/lib/spree/testing_support/factories/property_factory.rb +5 -0
  213. data/lib/spree/testing_support/factories/refund_factory.rb +7 -2
  214. data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
  215. data/lib/spree/testing_support/factories/reimbursement_factory.rb +7 -2
  216. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +5 -0
  217. data/lib/spree/testing_support/factories/return_authorization_factory.rb +8 -3
  218. data/lib/spree/testing_support/factories/return_item_factory.rb +8 -4
  219. data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
  220. data/lib/spree/testing_support/factories/role_factory.rb +5 -0
  221. data/lib/spree/testing_support/factories/shipment_factory.rb +9 -3
  222. data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
  223. data/lib/spree/testing_support/factories/shipping_method_factory.rb +8 -3
  224. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -2
  225. data/lib/spree/testing_support/factories/state_factory.rb +7 -1
  226. data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -2
  227. data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -3
  228. data/lib/spree/testing_support/factories/stock_movement_factory.rb +6 -1
  229. data/lib/spree/testing_support/factories/stock_package_factory.rb +7 -2
  230. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +13 -0
  231. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -2
  232. data/lib/spree/testing_support/factories/store_credit_factory.rb +8 -3
  233. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +8 -1
  234. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
  235. data/lib/spree/testing_support/factories/store_factory.rb +6 -1
  236. data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -1
  237. data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -3
  238. data/lib/spree/testing_support/factories/taxon_factory.rb +10 -1
  239. data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
  240. data/lib/spree/testing_support/factories/user_factory.rb +14 -3
  241. data/lib/spree/testing_support/factories/variant_factory.rb +9 -4
  242. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +7 -2
  243. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +8 -3
  244. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +7 -2
  245. data/lib/spree/testing_support/factories/zone_factory.rb +8 -3
  246. data/lib/spree/testing_support/factories.rb +8 -4
  247. data/lib/spree/testing_support/factory_bot.rb +68 -0
  248. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  249. data/lib/spree/testing_support/fixtures/file.txt +1 -0
  250. data/lib/spree/testing_support/job_helpers.rb +24 -0
  251. data/lib/spree/testing_support/order_walkthrough.rb +10 -13
  252. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  253. data/lib/spree/testing_support/preferences.rb +0 -23
  254. data/lib/spree/testing_support/sequences.rb +4 -1
  255. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  256. data/lib/spree/testing_support/translations.rb +25 -0
  257. data/lib/spree/testing_support.rb +31 -0
  258. data/lib/tasks/solidus/check_orders_with_invalid_email.rake +18 -0
  259. data/lib/tasks/upgrade.rake +15 -0
  260. data/solidus_core.gemspec +30 -7
  261. metadata +137 -408
  262. data/app/mailers/spree/test_mailer.rb +0 -13
  263. data/app/models/concerns/spree/user_payment_source.rb +0 -26
  264. data/app/models/spree/calculator/free_shipping.rb +0 -21
  265. data/app/models/spree/calculator/percent_per_item.rb +0 -49
  266. data/app/models/spree/calculator/price_sack.rb +0 -27
  267. data/app/models/spree/gateway/bogus.rb +0 -13
  268. data/app/models/spree/gateway/bogus_simple.rb +0 -13
  269. data/app/models/spree/gateway.rb +0 -14
  270. data/app/models/spree/order/checkout.rb +0 -243
  271. data/app/models/spree/order_capturing.rb +0 -50
  272. data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
  273. data/lib/solidus/migrations/rename_gateways.rb +0 -41
  274. data/lib/spree/core/current_store.rb +0 -24
  275. data/lib/spree/paranoia_deprecations.rb +0 -21
  276. data/lib/spree/promo/environment.rb +0 -12
  277. data/lib/spree/testing_support/bar_ability.rb +0 -19
  278. data/lib/tasks/core.rake +0 -104
  279. data/lib/tasks/email.rake +0 -11
  280. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
  281. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
  282. data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
  283. data/lib/tasks/migrations/rename_gateways.rake +0 -23
  284. data/lib/tasks/order_capturing.rake +0 -27
  285. data/script/rails +0 -10
  286. data/spec/fixtures/thinking-cat.jpg +0 -0
  287. data/spec/helpers/base_helper_spec.rb +0 -168
  288. data/spec/helpers/products_helper_spec.rb +0 -202
  289. data/spec/helpers/taxons_helper_spec.rb +0 -43
  290. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  291. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  292. data/spec/lib/i18n_spec.rb +0 -97
  293. data/spec/lib/search/base_spec.rb +0 -91
  294. data/spec/lib/search/variant_spec.rb +0 -115
  295. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  296. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  297. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  298. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  299. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  300. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  301. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  302. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  303. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  304. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  305. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  306. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  307. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  308. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  309. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  310. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  311. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  312. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  313. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  314. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  315. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  316. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  317. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  318. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  319. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  320. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  321. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  322. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  323. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  324. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  325. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  326. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  327. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  328. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  329. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  330. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  331. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  332. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  333. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  334. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  335. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  336. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  337. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  338. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  339. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  340. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  341. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  342. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  343. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  344. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  345. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  346. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  347. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  348. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  349. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  350. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  351. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  352. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  353. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  354. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  355. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  356. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  357. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  358. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  359. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  360. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  361. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  362. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  363. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  364. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  365. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  366. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  367. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  368. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  369. data/spec/lib/spree/core/version_spec.rb +0 -19
  370. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  371. data/spec/lib/spree/event_spec.rb +0 -130
  372. data/spec/lib/spree/localized_number_spec.rb +0 -45
  373. data/spec/lib/spree/migrations_spec.rb +0 -32
  374. data/spec/lib/spree/money_spec.rb +0 -298
  375. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  376. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  377. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  378. data/spec/lib/tasks/dummy_task.rake +0 -12
  379. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  380. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  381. data/spec/mailers/carton_mailer_spec.rb +0 -44
  382. data/spec/mailers/order_mailer_spec.rb +0 -117
  383. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  384. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  385. data/spec/mailers/test_mailer_spec.rb +0 -13
  386. data/spec/models/spree/ability_spec.rb +0 -279
  387. data/spec/models/spree/address_spec.rb +0 -399
  388. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  389. data/spec/models/spree/adjustment_spec.rb +0 -339
  390. data/spec/models/spree/asset_spec.rb +0 -25
  391. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  392. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  393. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  394. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  395. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  396. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  397. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  398. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  399. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  400. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  401. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  402. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  403. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  404. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  405. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  406. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  407. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  408. data/spec/models/spree/calculator_spec.rb +0 -43
  409. data/spec/models/spree/carton_spec.rb +0 -145
  410. data/spec/models/spree/classification_spec.rb +0 -126
  411. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  412. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  413. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  414. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  415. data/spec/models/spree/country_spec.rb +0 -154
  416. data/spec/models/spree/credit_card_spec.rb +0 -373
  417. data/spec/models/spree/customer_return_spec.rb +0 -294
  418. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  419. data/spec/models/spree/exchange_spec.rb +0 -76
  420. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  421. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  422. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  423. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  424. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  425. data/spec/models/spree/gateway_spec.rb +0 -14
  426. data/spec/models/spree/image_spec.rb +0 -25
  427. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  428. data/spec/models/spree/line_item_spec.rb +0 -240
  429. data/spec/models/spree/option_type_spec.rb +0 -16
  430. data/spec/models/spree/option_value_spec.rb +0 -52
  431. data/spec/models/spree/order/address_spec.rb +0 -52
  432. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  433. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  434. data/spec/models/spree/order/checkout_spec.rb +0 -740
  435. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  436. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  437. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  438. data/spec/models/spree/order/payment_spec.rb +0 -280
  439. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  440. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  441. data/spec/models/spree/order/totals_spec.rb +0 -26
  442. data/spec/models/spree/order/validations_spec.rb +0 -17
  443. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  444. data/spec/models/spree/order_capturing_spec.rb +0 -16
  445. data/spec/models/spree/order_contents_spec.rb +0 -362
  446. data/spec/models/spree/order_inventory_spec.rb +0 -285
  447. data/spec/models/spree/order_merger_spec.rb +0 -162
  448. data/spec/models/spree/order_mutex_spec.rb +0 -89
  449. data/spec/models/spree/order_promotion_spec.rb +0 -33
  450. data/spec/models/spree/order_shipping_spec.rb +0 -247
  451. data/spec/models/spree/order_spec.rb +0 -1687
  452. data/spec/models/spree/order_taxation_spec.rb +0 -128
  453. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  454. data/spec/models/spree/order_updater_spec.rb +0 -556
  455. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  456. data/spec/models/spree/payment_create_spec.rb +0 -195
  457. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  458. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  459. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  460. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  461. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  462. data/spec/models/spree/payment_method_spec.rb +0 -408
  463. data/spec/models/spree/payment_spec.rb +0 -1270
  464. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  465. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  466. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  467. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  468. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  469. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  470. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  471. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  472. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  473. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  474. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  475. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  476. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  477. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  478. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  479. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  480. data/spec/models/spree/preference_spec.rb +0 -79
  481. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  482. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  483. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  484. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  485. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  486. data/spec/models/spree/preferences/store_spec.rb +0 -40
  487. data/spec/models/spree/price_spec.rb +0 -150
  488. data/spec/models/spree/product/scopes_spec.rb +0 -164
  489. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  490. data/spec/models/spree/product_filter_spec.rb +0 -28
  491. data/spec/models/spree/product_property_spec.rb +0 -20
  492. data/spec/models/spree/product_spec.rb +0 -584
  493. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  494. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  495. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  496. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  497. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  498. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  499. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  500. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  501. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  502. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  503. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  504. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  505. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  506. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  507. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  508. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  509. data/spec/models/spree/promotion_action_spec.rb +0 -44
  510. data/spec/models/spree/promotion_category_spec.rb +0 -19
  511. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  512. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  513. data/spec/models/spree/promotion_code_spec.rb +0 -206
  514. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  515. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  516. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  517. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  518. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  519. data/spec/models/spree/promotion_spec.rb +0 -945
  520. data/spec/models/spree/refund_spec.rb +0 -200
  521. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  522. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  523. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  524. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  525. data/spec/models/spree/reimbursement_spec.rb +0 -278
  526. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  527. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  528. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  529. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  530. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  531. data/spec/models/spree/return_authorization_spec.rb +0 -226
  532. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  533. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  534. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  535. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  536. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  537. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  538. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  539. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  540. data/spec/models/spree/return_item_spec.rb +0 -785
  541. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  542. data/spec/models/spree/shipment_spec.rb +0 -914
  543. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  544. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  545. data/spec/models/spree/shipping_method_spec.rb +0 -292
  546. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  547. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  548. data/spec/models/spree/state_spec.rb +0 -43
  549. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  550. data/spec/models/spree/stock/availability_spec.rb +0 -143
  551. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  552. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  553. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  554. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  555. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  556. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  557. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  558. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  559. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  560. data/spec/models/spree/stock/package_spec.rb +0 -182
  561. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  562. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  563. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  564. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  565. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  566. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  567. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  568. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  569. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  570. data/spec/models/spree/stock_item_spec.rb +0 -348
  571. data/spec/models/spree/stock_location_spec.rb +0 -288
  572. data/spec/models/spree/stock_movement_spec.rb +0 -58
  573. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  574. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  575. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  576. data/spec/models/spree/store_credit_spec.rb +0 -900
  577. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  578. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  579. data/spec/models/spree/store_spec.rb +0 -156
  580. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  581. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  582. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  583. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  584. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  585. data/spec/models/spree/tax_category_spec.rb +0 -50
  586. data/spec/models/spree/tax_rate_spec.rb +0 -317
  587. data/spec/models/spree/taxon_spec.rb +0 -197
  588. data/spec/models/spree/taxonomy_spec.rb +0 -15
  589. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  590. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  591. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  592. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  593. data/spec/models/spree/user_spec.rb +0 -247
  594. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  595. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  596. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  597. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  598. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  599. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  600. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  601. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  602. data/spec/models/spree/variant_spec.rb +0 -862
  603. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  604. data/spec/models/spree/wallet_spec.rb +0 -155
  605. data/spec/models/spree/zone_spec.rb +0 -248
  606. data/spec/rails_helper.rb +0 -46
  607. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  608. data/spec/spec_helper.rb +0 -36
  609. data/spec/support/big_decimal.rb +0 -7
  610. data/spec/support/concerns/default_price.rb +0 -44
  611. data/spec/support/concerns/payment_source.rb +0 -66
  612. data/spec/support/concerns/working_factories.rb +0 -15
  613. data/spec/support/dummy_ability.rb +0 -7
  614. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  615. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  616. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  617. /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  618. /data/{app/models → lib}/spree/user_class_handle.rb +0 -0
@@ -1,23 +1,34 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'rails/generators'
4
- require 'bundler'
5
- require 'bundler/cli'
4
+ require 'rails/version'
6
5
 
7
- module Spree
6
+ module Solidus
8
7
  # @private
9
8
  class InstallGenerator < Rails::Generators::Base
10
9
  CORE_MOUNT_ROUTE = "mount Spree::Core::Engine"
11
10
 
11
+ PAYMENT_METHODS = {
12
+ 'paypal' => 'solidus_paypal_commerce_platform',
13
+ 'none' => nil,
14
+ }
15
+
12
16
  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)'
17
+ class_option :seed, type: :boolean, default: true, banner: 'Load seed data (migrations must be run)'
18
+ class_option :sample, type: :boolean, default: true, banner: 'Load sample data (migrations must be run)'
19
+ class_option :active_storage, type: :boolean, default: Rails.gem_version >= Gem::Version.new("6.1.0"), banner: 'Install ActiveStorage as image attachments handler for products and taxons'
15
20
  class_option :auto_accept, type: :boolean
16
21
  class_option :user_class, type: :string
17
22
  class_option :admin_email, type: :string
18
23
  class_option :admin_password, type: :string
19
24
  class_option :lib_name, type: :string, default: 'spree'
25
+ class_option :with_authentication, type: :boolean, default: true
20
26
  class_option :enforce_available_locales, type: :boolean, default: nil
27
+ class_option :payment_method,
28
+ type: :string,
29
+ enum: PAYMENT_METHODS.keys,
30
+ default: PAYMENT_METHODS.keys.first,
31
+ desc: "Indicates which payment method to install."
21
32
 
22
33
  def self.source_paths
23
34
  paths = superclass.source_paths
@@ -42,8 +53,19 @@ module Spree
42
53
  template 'config/initializers/spree.rb.tt', 'config/initializers/spree.rb'
43
54
  end
44
55
 
56
+ def install_file_attachment
57
+ if options[:active_storage]
58
+ say "Installing Active Storage", :green
59
+ rake 'active_storage:install'
60
+ else
61
+ say "Installing Paperclip", :green
62
+ gsub_file 'config/initializers/spree.rb', "ActiveStorageAttachment", "PaperclipAttachment"
63
+ end
64
+ end
65
+
45
66
  def additional_tweaks
46
67
  return unless File.exist? 'public/robots.txt'
68
+
47
69
  append_file "public/robots.txt", <<-ROBOTS.strip_heredoc
48
70
  User-agent: *
49
71
  Disallow: /checkout
@@ -91,15 +113,6 @@ module Spree
91
113
  end
92
114
  end
93
115
  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
116
  RUBY
104
117
 
105
118
  if !options[:enforce_available_locales].nil?
@@ -110,6 +123,42 @@ module Spree
110
123
  end
111
124
  end
112
125
 
126
+ def plugin_install_preparation
127
+ @plugins_to_be_installed = []
128
+ @plugin_generators_to_run = []
129
+ end
130
+
131
+ def install_auth_plugin
132
+ if options[:with_authentication] && (options[:auto_accept] || !no?("
133
+ Solidus has a default authentication extension that uses Devise.
134
+ You can find more info at https://github.com/solidusio/solidus_auth_devise.
135
+
136
+ Would you like to install it? (y/n)"))
137
+
138
+ @plugins_to_be_installed << 'solidus_auth_devise'
139
+ @plugin_generators_to_run << 'solidus:auth:install'
140
+ end
141
+ end
142
+
143
+ def install_payment_method
144
+ name = options[:payment_method]
145
+
146
+ unless options[:auto_accept]
147
+ available_names = PAYMENT_METHODS.keys
148
+
149
+ name = ask("
150
+ You can select a payment method to be included in the installation process.
151
+ Please select a payment method name:", limited_to: available_names, default: available_names.first)
152
+ end
153
+
154
+ gem_name = PAYMENT_METHODS.fetch(name)
155
+
156
+ if gem_name
157
+ @plugins_to_be_installed << gem_name
158
+ @plugin_generators_to_run << "#{gem_name}:install"
159
+ end
160
+ end
161
+
113
162
  def include_seed_data
114
163
  append_file "db/seeds.rb", <<-RUBY.strip_heredoc
115
164
 
@@ -128,6 +177,19 @@ module Spree
128
177
  rake 'db:create'
129
178
  end
130
179
 
180
+ def run_bundle_install_if_needed_by_plugins
181
+ @plugins_to_be_installed.each do |plugin_name|
182
+ gem plugin_name
183
+ end
184
+
185
+ bundle_cleanly{ run "bundle install" } if @plugins_to_be_installed.any?
186
+ run "spring stop" if defined?(Spring)
187
+
188
+ @plugin_generators_to_run.each do |plugin_generator_name|
189
+ generate "#{plugin_generator_name} --skip_migrations=true"
190
+ end
191
+ end
192
+
131
193
  def run_migrations
132
194
  if @run_migrations
133
195
  say_status :running, "migrations"
@@ -193,5 +255,11 @@ module Spree
193
255
  puts "Enjoy!"
194
256
  end
195
257
  end
258
+
259
+ private
260
+
261
+ def bundle_cleanly(&block)
262
+ Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&block) : Bundler.with_clean_env(&block)
263
+ end
196
264
  end
197
265
  end
@@ -18,11 +18,11 @@ Spree.config do |config|
18
18
  # any inventory changes.
19
19
  # config.inventory_cache_threshold = 3
20
20
 
21
- # Enable Paperclip adapter for attachments on images and taxons
22
- config.image_attachment_module = 'Spree::Image::PaperclipAttachment'
23
- config.taxon_attachment_module = 'Spree::Taxon::PaperclipAttachment'
24
-
21
+ # Configure adapter for attachments on products and taxons (use ActiveStorageAttachment or PaperclipAttachment)
22
+ config.image_attachment_module = 'Spree::Image::ActiveStorageAttachment'
23
+ config.taxon_attachment_module = 'Spree::Taxon::ActiveStorageAttachment'
25
24
 
25
+ # Defaults
26
26
  # Permission Sets:
27
27
 
28
28
  # Uncomment and customize the following line to add custom permission sets
@@ -89,11 +89,6 @@ end
89
89
 
90
90
  Spree.user_class = <%= (options[:user_class].blank? ? "Spree::LegacyUser" : options[:user_class]).inspect %>
91
91
 
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
92
  # Rules for avoiding to store the current path into session for redirects
98
93
  # When at least one rule is matched, the request path will not be stored
99
94
  # in session.
@@ -43,7 +43,7 @@ module Spree
43
43
  opts[:skip_test] = true
44
44
  opts[:skip_yarn] = true
45
45
  opts[:skip_bootsnap] = true
46
- opts[:skip_webpack_install] = true
46
+ opts[:skip_javascript] = true
47
47
 
48
48
  puts "Generating dummy Rails application..."
49
49
  invoke Rails::Generators::AppGenerator,
@@ -55,6 +55,7 @@ module Spree
55
55
  @database = options[:database]
56
56
 
57
57
  template "rails/database.yml", "#{dummy_path}/config/database.yml", force: true
58
+ template "rails/storage.yml", "#{dummy_path}/config/storage/test.yml", force: true
58
59
  template "rails/boot.rb", "#{dummy_path}/config/boot.rb", force: true
59
60
  template "rails/application.rb.tt", "#{dummy_path}/config/application.rb", force: true
60
61
  template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true
@@ -32,6 +32,8 @@ production:
32
32
  encoding: utf8
33
33
  <% when 'postgres', 'postgresql' %>
34
34
  <% db_host = ENV['DB_HOST'] -%>
35
+ <% db_username = ENV['DB_USERNAME'] -%>
36
+ <% db_password = ENV['DB_PASSWORD'] -%>
35
37
  development:
36
38
  adapter: postgresql
37
39
  database: <%= database_prefix %><%= options[:lib_name] %>_solidus_development
@@ -43,7 +45,10 @@ development:
43
45
  test:
44
46
  adapter: postgresql
45
47
  database: <%= database_prefix %><%= options[:lib_name] %>_solidus_test
46
- username: postgres
48
+ username: <%= db_username || 'postgres' %>
49
+ <% unless db_password.blank? %>
50
+ password: <%= db_password %>
51
+ <% end %>
47
52
  min_messages: warning
48
53
  <% unless db_host.blank? %>
49
54
  host: <%= db_host %>
@@ -0,0 +1,3 @@
1
+ test:
2
+ service: Disk
3
+ root: <%= File.expand_path("#{dummy_path}/tmp/storage", destination_root) %>
@@ -20,11 +20,16 @@ Dummy::Application.configure do
20
20
  # Raise exceptions instead of rendering exception templates
21
21
  config.action_dispatch.show_exceptions = false
22
22
 
23
+ # Disable request forgery protection in test environment
24
+ config.action_controller.allow_forgery_protection = false
25
+
23
26
  # Tell Action Mailer not to deliver emails to the real world.
24
27
  # The :test delivery method accumulates sent emails in the
25
28
  # ActionMailer::Base.deliveries array.
26
29
  config.action_mailer.delivery_method = :test
27
- ActionMailer::Base.default from: "spree@example.com"
30
+ ActionMailer::Base.default from: "solidus@example.com"
31
+
32
+ config.active_storage.service = :test
28
33
 
29
34
  # Raise on deprecation warnings
30
35
  if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
@@ -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
 
@@ -21,10 +21,15 @@ require "spree/core/search/base"
21
21
  require "spree/core/search/variant"
22
22
  require 'spree/preferences/configuration'
23
23
  require 'spree/core/environment'
24
+ require 'rails/gem_version'
24
25
 
25
26
  module Spree
26
27
  class AppConfiguration < Preferences::Configuration
27
- # Alphabetized to more easily lookup particular preferences
28
+ # Preferences (alphabetized to more easily lookup particular preferences)
29
+
30
+ # @!attribute [rw] address_requires_phone
31
+ # @return [Boolean] should phone number be required (default: +true+)
32
+ preference :address_requires_phone, :boolean, default: true
28
33
 
29
34
  # @!attribute [rw] address_requires_state
30
35
  # @return [Boolean] should state/state_name be required (default: +true+)
@@ -42,6 +47,12 @@ module Spree
42
47
  # @return [Integer] Number of variants to display in admin (default: +20+)
43
48
  preference :admin_variants_per_page, :integer, default: 20
44
49
 
50
+ # @!attribute [rw] admin_vat_country_iso
51
+ # Set this if you want to enter prices in the backend including value added tax.
52
+ # @return [String, nil] Two-letter ISO code of that {Spree::Country} for which
53
+ # prices are entered in the backend (default: nil)
54
+ preference :admin_vat_country_iso, :string, default: nil
55
+
45
56
  # @!attribute [rw] allow_checkout_on_gateway_error
46
57
  # @return [Boolean] Allow checkout to complete after a failed payment (default: +false+)
47
58
  preference :allow_checkout_on_gateway_error, :boolean, default: false
@@ -50,6 +61,10 @@ module Spree
50
61
  # @return [Boolean] When false, customers must create an account to complete an order (default: +true+)
51
62
  preference :allow_guest_checkout, :boolean, default: true
52
63
 
64
+ # @!attribute [rw] guest_token_cookie_options
65
+ # @return [Hash] Add additional guest_token cookie options here (ie. domain or path)
66
+ preference :guest_token_cookie_options, :hash, default: {}
67
+
53
68
  # @!attribute [rw] allow_return_item_amount_editing
54
69
  # @return [Boolean] Determines whether an admin is allowed to change a return item's pre-calculated amount (default: +false+)
55
70
  preference :allow_return_item_amount_editing, :boolean, default: false
@@ -78,30 +93,24 @@ module Spree
78
93
  # @return [Boolean] Automatically capture the credit card (as opposed to just authorize and capture later) (default: +false+)
79
94
  preference :auto_capture_exchanges, :boolean, default: false
80
95
 
81
- # @!attribute [rw] binary_inventory_cache
82
- # Only invalidate product caches when they change from in stock to out of
83
- # stock. By default, caches are invalidated on any change of inventory
84
- # quantity. Setting this to true should make operations on inventory
85
- # faster.
96
+ # @!attribute [rw] automatic_default_address
97
+ # The default value of true preserves existing backwards compatible feature of
98
+ # treating the most recently used address in checkout as the user's default address.
99
+ # Setting to false means that the user should manage their own default via some
100
+ # custom UI that uses AddressBookController.
101
+ # @return [Boolean] Whether use of an address in checkout marks it as user's default
102
+ preference :automatic_default_address, :boolean, default: true
103
+
104
+ # @!attribute [rw] billing_address_required
105
+ # Controls whether billing address is required or not in the checkout process
106
+ # by default, can be overridden at order level.
86
107
  # (default: +false+)
87
- # @deprecated - use inventory_cache_threshold instead
88
108
  # @return [Boolean]
89
- preference :binary_inventory_cache, :boolean, default: false
109
+ preference :billing_address_required, :boolean, default: false
90
110
 
91
- # @!attribute [rw] completable_order_created_cutoff
92
- # @return [Integer] the number of days to look back for created orders which get returned to the user as last completed
93
- preference :completable_order_created_cutoff_days, :integer, default: nil
94
-
95
- # @!attribute [rw] completable_order_created_cutoff
96
- # @return [Integer] the number of days to look back for updated orders which get returned to the user as last completed
97
- preference :completable_order_updated_cutoff_days, :integer, default: nil
98
-
99
- # @!attribute [rw] inventory_cache_threshold
100
- # Only invalidate product caches when the count on hand for a stock item
101
- # falls below or rises about the inventory_cache_threshold. When undefined, the
102
- # product caches will be invalidated anytime the count on hand is changed.
103
- # @return [Integer]
104
- preference :inventory_cache_threshold, :integer
111
+ # @!attribute [rw] can_restrict_stock_management
112
+ # @return [Boolean] Indicates if stock management can be restricted by location
113
+ preference :can_restrict_stock_management, :boolean, default: false
105
114
 
106
115
  # @!attribute [rw] checkout_zone
107
116
  # @return [String] Name of a {Spree::Zone}, which limits available countries to those included in that zone. (default: +nil+)
@@ -111,32 +120,44 @@ module Spree
111
120
  # @return [Boolean] Request company field for billing and shipping addresses. (default: +false+)
112
121
  preference :company, :boolean, default: false
113
122
 
123
+ # @!attribute [rw] completable_order_created_cutoff
124
+ # @return [Integer] the number of days to look back for created orders which get returned to the user as last completed
125
+ preference :completable_order_created_cutoff_days, :integer, default: nil
126
+
127
+ # @!attribute [rw] completable_order_created_cutoff
128
+ # @return [Integer] the number of days to look back for updated orders which get returned to the user as last completed
129
+ preference :completable_order_updated_cutoff_days, :integer, default: nil
130
+
131
+ # @!attribute [rw] credit_to_new_allocation
132
+ # @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
133
+ preference :credit_to_new_allocation, :boolean, default: false
134
+
114
135
  # @!attribute [rw] currency
115
136
  # Currency to use by default when not defined on the site (default: +"USD"+)
116
137
  # @return [String] ISO 4217 Three letter currency code
117
138
  preference :currency, :string, default: "USD"
118
139
 
119
- # @!attribute [rw] default_country_id
120
- # @deprecated Use the default country ISO preference instead
121
- # @return [Integer,nil] id of {Spree::Country} to be selected by default in dropdowns (default: nil)
122
- preference :default_country_id, :integer
140
+ # @!attribute [rw] customer_returns_per_page
141
+ # @return [Integer] Customer returns to show per-page in the admin (default: +15+)
142
+ preference :customer_returns_per_page, :integer, default: 15
123
143
 
124
144
  # @!attribute [rw] default_country_iso
125
145
  # Default customer country ISO code
126
146
  # @return [String] Two-letter ISO code of a {Spree::Country} to assumed as the country of an unidentified customer (default: "US")
127
147
  preference :default_country_iso, :string, default: 'US'
128
148
 
129
- # @!attribute [rw] admin_vat_country_iso
130
- # Set this if you want to enter prices in the backend including value added tax.
131
- # @return [String, nil] Two-letter ISO code of that {Spree::Country} for which
132
- # prices are entered in the backend (default: nil)
133
- preference :admin_vat_country_iso, :string, default: nil
134
-
135
149
  # @!attribute [rw] generate_api_key_for_all_roles
136
150
  # @return [Boolean] Allow generating api key automatically for user
137
151
  # at role_user creation for all roles. (default: +false+)
138
152
  preference :generate_api_key_for_all_roles, :boolean, default: false
139
153
 
154
+ # @!attribute [rw] inventory_cache_threshold
155
+ # Only invalidate product caches when the count on hand for a stock item
156
+ # falls below or rises about the inventory_cache_threshold. When undefined, the
157
+ # product caches will be invalidated anytime the count on hand is changed.
158
+ # @return [Integer]
159
+ preference :inventory_cache_threshold, :integer
160
+
140
161
  # @!attribute [rw] layout
141
162
  # @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
142
163
  preference :layout, :string, default: 'spree/layouts/spree_application'
@@ -145,6 +166,30 @@ module Spree
145
166
  # @return [String] URL of logo used on frontend (default: +'logo/solidus.svg'+)
146
167
  preference :logo, :string, default: 'logo/solidus.svg'
147
168
 
169
+ # @!attribute [rw] log_entry_permitted_classes
170
+ # @return [Array<String>] An array of extra classes that are allowed to be
171
+ # loaded from a serialized YAML as details in {Spree::LogEntry}
172
+ # (defaults to a non-frozen empty array, so that extensions can add
173
+ # their own classes).
174
+ # @example
175
+ # config.log_entry_permitted_classes = ['Date']
176
+ preference :log_entry_permitted_classes, :array, default: []
177
+
178
+ # @!attribute [rw] log_entry_allow_aliases
179
+ # @return [Boolean] Whether YAML aliases are allowed when loading
180
+ # serialized data in {Spree::LogEntry}. It defaults to true. Depending
181
+ # on the source of your data, you may consider disabling it to prevent
182
+ # entity expansion attacks.
183
+ preference :log_entry_allow_aliases, :boolean, default: true
184
+
185
+ # @!attribute [rw] mails_from
186
+ # @return [String] Email address used as +From:+ field in transactional emails.
187
+ preference :mails_from, :string, default: 'solidus@example.com'
188
+
189
+ # @!attribute [rw] max_level_in_taxons_menu
190
+ # @return [Integer] maximum nesting level in taxons menu (default: +1+)
191
+ preference :max_level_in_taxons_menu, :integer, default: 1
192
+
148
193
  # @!attribute [rw] order_bill_address_used
149
194
  # @return [Boolean] Use the order's bill address, as opposed to storing
150
195
  # bill addresses on payment sources. (default: +true+)
@@ -154,10 +199,6 @@ module Spree
154
199
  # @return [Integer] the number of days to look back for fully-shipped/cancelled orders in order to charge for them
155
200
  preference :order_capturing_time_window, :integer, default: 14
156
201
 
157
- # @!attribute [rw] max_level_in_taxons_menu
158
- # @return [Integer] maximum nesting level in taxons menu (default: +1+)
159
- preference :max_level_in_taxons_menu, :integer, default: 1
160
-
161
202
  # @!attribute [rw] order_mutex_max_age
162
203
  # @return [Integer] Max age of {Spree::OrderMutex} in seconds (default: 2 minutes)
163
204
  preference :order_mutex_max_age, :integer, default: 120
@@ -178,10 +219,6 @@ module Spree
178
219
  # @return [Integer] Promotions to show per-page in the admin (default: +15+)
179
220
  preference :promotions_per_page, :integer, default: 15
180
221
 
181
- # @!attribute [rw] customer_returns_per_page
182
- # @return [Integer] Customer returns to show per-page in the admin (default: +15+)
183
- preference :customer_returns_per_page, :integer, default: 15
184
-
185
222
  # @!attribute [rw] require_master_price
186
223
  # @return [Boolean] Require a price on the master variant of a product (default: +true+)
187
224
  preference :require_master_price, :boolean, default: true
@@ -200,6 +237,18 @@ module Spree
200
237
  # (default: +['admin']+)
201
238
  preference :roles_for_auto_api_key, :array, default: ['admin']
202
239
 
240
+ # @!attribute [rw] countries_that_use_nested_subregions
241
+ # @return [Array] An array of countries that use nested subregions, instead
242
+ # of the default subregions that come with Carmen. Will be used on store creation
243
+ # to ensure the correct states are generated, and when running the states
244
+ # regenerate rake task.
245
+ # (default: +['IT']+)
246
+ preference :countries_that_use_nested_subregions, :array, default: ['IT']
247
+
248
+ # @!attribute [rw] send_core_emails
249
+ # @return [Boolean] Whether to send transactional emails (default: true)
250
+ preference :send_core_emails, :boolean, default: true
251
+
203
252
  # @!attribute [rw] shipping_instructions
204
253
  # @return [Boolean] Request instructions/info for shipping (default: +false+)
205
254
  preference :shipping_instructions, :boolean, default: false
@@ -231,33 +280,8 @@ module Spree
231
280
  # @return [] Track on_hand values for variants / products. (default: true)
232
281
  preference :track_inventory_levels, :boolean, default: true
233
282
 
234
- # Default mail headers settings
235
-
236
- # @!attribute [rw] send_core_emails
237
- # @return [Boolean] Whether to send transactional emails (default: true)
238
- preference :send_core_emails, :boolean, default: true
239
-
240
- # @!attribute [rw] mails_from
241
- # @return [String] Email address used as +From:+ field in transactional emails.
242
- preference :mails_from, :string, default: 'spree@example.com'
243
-
244
- # Store credits configurations
245
283
 
246
- # @!attribute [rw] credit_to_new_allocation
247
- # @return [Boolean] Creates a new allocation anytime {Spree::StoreCredit#credit} is called
248
- preference :credit_to_new_allocation, :boolean, default: false
249
-
250
- # @!attribute [rw] automatic_default_address
251
- # The default value of true preserves existing backwards compatible feature of
252
- # treating the most recently used address in checkout as the user's default address.
253
- # Setting to false means that the user should manage their own default via some
254
- # custom UI that uses AddressBookController.
255
- # @return [Boolean] Whether use of an address in checkout marks it as user's default
256
- preference :automatic_default_address, :boolean, default: true
257
-
258
- # @!attribute [rw] can_restrict_stock_management
259
- # @return [Boolean] Indicates if stock management can be restricted by location
260
- preference :can_restrict_stock_management, :boolean, default: false
284
+ # Other configurations
261
285
 
262
286
  # Allows restricting what currencies will be available.
263
287
  #
@@ -430,23 +454,31 @@ module Spree
430
454
 
431
455
  # Allows switching attachment library for Image
432
456
  #
433
- # `Spree::Image::PaperclipAttachment`
434
- # is the default and provides the classic Paperclip implementation.
457
+ # `Spree::Image::ActiveStorageAttachment`
458
+ # is the default and provides the Active Storage implementation.
435
459
  #
436
460
  # @!attribute [rw] image_attachment_module
437
461
  # @return [Module] a module that can be included into Spree::Image to allow attachments
438
462
  # Enumerable of images adhering to the present_image_class interface
439
- class_name_attribute :image_attachment_module, default: 'Spree::Image::PaperclipAttachment'
463
+ class_name_attribute :image_attachment_module, default: Rails.gem_version >= Gem::Version.new("6.1.0") ? "Spree::Image::ActiveStorageAttachment" : "Spree::Image::PaperclipAttachment"
464
+
465
+ # @!attribute [rw] allowed_image_mime_types
466
+ #
467
+ # Defines which MIME types are allowed for images
468
+ # `%w(image/jpeg image/jpg image/png image/gif).freeze` is the default.
469
+ #
470
+ # @return [Array]
471
+ class_name_attribute :allowed_image_mime_types, default: %w(image/jpeg image/jpg image/png image/gif).freeze
440
472
 
441
473
  # Allows switching attachment library for Taxon
442
474
  #
443
- # `Spree::Taxon::PaperclipAttachment`
444
- # is the default and provides the classic Paperclip implementation.
475
+ # `Spree::Taxon::ActiveStorageAttachment`
476
+ # is the default and provides the Active Storage implementation.
445
477
  #
446
478
  # @!attribute [rw] taxon_attachment_module
447
479
  # @return [Module] a module that can be included into Spree::Taxon to allow attachments
448
480
  # Enumerable of taxons adhering to the present_taxon_class interface
449
- class_name_attribute :taxon_attachment_module, default: 'Spree::Taxon::PaperclipAttachment'
481
+ class_name_attribute :taxon_attachment_module, default: Rails.gem_version >= Gem::Version.new("6.1.0") ? "Spree::Taxon::ActiveStorageAttachment" : "Spree::Taxon::PaperclipAttachment"
450
482
 
451
483
  # Allows providing your own class instance for generating order numbers.
452
484
  #
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_support/core_ext/module'
4
+
3
5
  module Spree
4
6
  module Core
5
7
  module ClassConstantizer
@@ -11,7 +11,7 @@ module Spree
11
11
  # @!attribute [rw] unauthorized_redirect
12
12
  # @!scope class
13
13
  # Extension point for overriding behaviour of access denied errors.
14
- # Default behaviour is to redirect to "/unauthorized" with a flash
14
+ # Default behaviour is to redirect back or to "/unauthorized" with a flash
15
15
  # message.
16
16
  # @return [Proc] action to take when access denied error is raised.
17
17
 
@@ -22,7 +22,7 @@ module Spree
22
22
  class_attribute :unauthorized_redirect
23
23
  self.unauthorized_redirect = -> do
24
24
  flash[:error] = I18n.t('spree.authorization_failure')
25
- redirect_to "/unauthorized"
25
+ redirect_back(fallback_location: "/unauthorized")
26
26
  end
27
27
 
28
28
  rescue_from CanCan::AccessDenied do
@@ -42,10 +42,10 @@ module Spree
42
42
 
43
43
  def set_guest_token
44
44
  unless cookies.signed[:guest_token].present?
45
- cookies.permanent.signed[:guest_token] = {
45
+ cookies.permanent.signed[:guest_token] = Spree::Config[:guest_token_cookie_options].merge(
46
46
  value: SecureRandom.urlsafe_base64(nil, false),
47
47
  httponly: true
48
- }
48
+ )
49
49
  end
50
50
  end
51
51
 
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Core
5
+ module ControllerHelpers
6
+ module CurrentHost
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ before_action do
11
+ ActiveStorage::Current.host = request.base_url
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -11,37 +11,23 @@ module Spree
11
11
 
12
12
  included do
13
13
  helper_method :current_order
14
- helper_method :simple_current_order
15
14
  end
16
15
 
17
- def simple_current_order
18
- return @simple_current_order if @simple_current_order
19
-
20
- @simple_current_order = find_order_by_token_or_user
21
-
22
- if @simple_current_order
23
- @simple_current_order.last_ip_address = ip_address
24
- return @simple_current_order
25
- else
26
- @simple_current_order = Spree::Order.new(current_order_params)
27
- end
28
- end
29
- deprecate simple_current_order: :current_order, deprecator: Spree::Deprecation
30
-
31
16
  # The current incomplete order from the guest_token for use in cart and during checkout
32
17
  def current_order(options = {})
33
- options[:create_order_if_necessary] ||= false
18
+ should_create = options[:create_order_if_necessary] || false
19
+ should_build = options[:build_order_if_necessary] || should_create
34
20
 
35
21
  return @current_order if @current_order
36
22
 
37
- @current_order = find_order_by_token_or_user(options)
23
+ @current_order = find_order_by_token_or_user(lock: options[:lock])
38
24
 
39
- if options[:create_order_if_necessary] && (@current_order.nil? || @current_order.completed?)
25
+ if should_build && (@current_order.nil? || @current_order.completed?)
40
26
  @current_order = Spree::Order.new(new_order_params)
41
27
  @current_order.user ||= try_spree_current_user
42
28
  # See issue https://github.com/spree/spree/issues/3346 for reasons why this line is here
43
29
  @current_order.created_by ||= try_spree_current_user
44
- @current_order.save!
30
+ @current_order.save! if should_create
45
31
  end
46
32
 
47
33
  if @current_order
@@ -83,16 +69,11 @@ module Spree
83
69
  current_order_params.merge(last_ip_address: ip_address)
84
70
  end
85
71
 
86
- def find_order_by_token_or_user(options = {}, with_adjustments = false)
87
- options[:lock] ||= false
72
+ def find_order_by_token_or_user(options = {})
73
+ should_lock = options[:lock] || false
88
74
 
89
75
  # Find any incomplete orders for the guest_token
90
- if with_adjustments
91
- Spree::Deprecation.warn "The second argument to find_order_by_token_or_user is deprecated, and will be removed in a future version."
92
- order = Spree::Order.incomplete.includes(:adjustments).lock(options[:lock]).find_by(current_order_params)
93
- else
94
- order = Spree::Order.incomplete.lock(options[:lock]).find_by(current_order_params)
95
- end
76
+ order = Spree::Order.incomplete.lock(should_lock).find_by(current_order_params)
96
77
 
97
78
  # Find any incomplete orders for the current user
98
79
  if order.nil? && try_spree_current_user