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
@@ -12,11 +12,11 @@ module Spree
12
12
  # end
13
13
  #
14
14
  class EmailValidator < ActiveModel::EachValidator
15
- EMAIL_REGEXP = /\A([^@\.]|[^@\.]([^@\s]*)[^@\.])@([^@\s]+\.)+[^@\s]+\z/
15
+ EMAIL_REGEXP = URI::MailTo::EMAIL_REGEXP
16
16
 
17
17
  def validate_each(record, attribute, value)
18
18
  unless EMAIL_REGEXP.match? value
19
- record.errors.add(attribute, :invalid, { value: value }.merge!(options))
19
+ record.errors.add(attribute, :invalid, **{ value: value }.merge!(options))
20
20
  end
21
21
  end
22
22
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spree
4
- VERSION = "2.10.5"
4
+ VERSION = "3.0.8"
5
5
 
6
6
  def self.solidus_version
7
7
  VERSION
data/lib/spree/core.rb CHANGED
@@ -1,6 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rails/all'
3
+ require "action_controller/railtie"
4
+ require "action_mailer/railtie"
5
+ require "action_view/railtie"
6
+ require "active_job/railtie"
7
+ require "active_model/railtie"
8
+ require "active_record/railtie"
9
+ require "active_storage/engine"
10
+ require "sprockets/railtie"
11
+
4
12
  require 'acts_as_list'
5
13
  require 'awesome_nested_set'
6
14
  require 'cancan'
@@ -9,12 +17,10 @@ require 'kaminari/activerecord'
9
17
  require 'mail'
10
18
  require 'monetize'
11
19
  require 'paperclip'
12
- require 'paranoia'
13
20
  require 'ransack'
14
21
  require 'state_machines-activerecord'
15
22
 
16
23
  require 'spree/deprecation'
17
- require 'spree/paranoia_deprecations'
18
24
 
19
25
  # This is required because ActiveModel::Validations#invalid? conflicts with the
20
26
  # invalid state of a Payment. In the future this should be removed.
@@ -47,23 +53,9 @@ module Spree
47
53
 
48
54
  module Core
49
55
  class GatewayError < RuntimeError; end
50
-
51
- include ActiveSupport::Deprecation::DeprecatedConstantAccessor
52
- deprecate_constant 'DestroyWithOrdersError', ActiveRecord::DeleteRestrictionError, deprecator: Spree::Deprecation
53
56
  end
54
57
  end
55
58
 
56
- if Gem::Version.new(Rails.version) < Gem::Version.new('5.2')
57
- warn <<~HEREDOC
58
- Rails 5.1 (EOL) is deprecated and will not be supported anymore from the next Solidus version.
59
- Please, upgrade to a more recent Rails version.
60
-
61
- Read more on upgrading from Rails 5.1 to Rails 5.2 here:
62
- https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-5-1-to-rails-5-2
63
-
64
- HEREDOC
65
- end
66
-
67
59
  require 'spree/core/version'
68
60
 
69
61
  require 'spree/core/active_merchant_dependencies'
@@ -72,7 +64,6 @@ require 'spree/core/environment_extension'
72
64
  require 'spree/core/environment/calculators'
73
65
  require 'spree/core/environment/promotions'
74
66
  require 'spree/core/environment'
75
- require 'spree/promo/environment'
76
67
  require 'spree/migrations'
77
68
  require 'spree/migration_helpers'
78
69
  require 'spree/event'
@@ -86,9 +77,9 @@ require 'spree/permitted_attributes'
86
77
  require 'spree/core/importer'
87
78
  require 'spree/core/permalinks'
88
79
  require 'spree/core/product_duplicator'
89
- require 'spree/core/current_store'
90
80
  require 'spree/core/controller_helpers/auth'
91
81
  require 'spree/core/controller_helpers/common'
82
+ require 'spree/core/controller_helpers/current_host'
92
83
  require 'spree/core/controller_helpers/order'
93
84
  require 'spree/core/controller_helpers/payment_parameters'
94
85
  require 'spree/core/controller_helpers/pricing'
@@ -100,6 +91,7 @@ require 'spree/core/state_machines'
100
91
  require 'spree/core/stock_configuration'
101
92
  require 'spree/core/validators/email'
102
93
  require 'spree/permission_sets'
94
+ require 'spree/user_class_handle'
103
95
 
104
96
  require 'spree/preferences/store'
105
97
  require 'spree/preferences/static_model_preferences'
@@ -3,7 +3,7 @@
3
3
  require 'active_support/deprecation'
4
4
 
5
5
  module Spree
6
- Deprecation = ActiveSupport::Deprecation.new('3.0', 'Solidus')
6
+ Deprecation = ActiveSupport::Deprecation.new('4.0', 'Solidus')
7
7
 
8
8
  # This DeprecatedInstanceVariableProxy transforms instance variable to
9
9
  # deprecated instance variable.
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ # Spree::Encryptor is a thin wrapper around ActiveSupport::MessageEncryptor.
5
+ class Encryptor
6
+ # @param key [String] the 256 bits signature key
7
+ def initialize(key)
8
+ @crypt = ActiveSupport::MessageEncryptor.new(key)
9
+ end
10
+
11
+ # Encrypt a value
12
+ # @param value [String] the value to encrypt
13
+ # @return [String] the encrypted value
14
+ def encrypt(value)
15
+ @crypt.encrypt_and_sign(value)
16
+ end
17
+
18
+ # Decrypt an encrypted value
19
+ # @param encrypted_value [String] the value to decrypt
20
+ # @return [String] the decrypted value
21
+ def decrypt(encrypted_value)
22
+ @crypt.decrypt_and_verify(encrypted_value)
23
+ end
24
+ end
25
+ end
@@ -4,6 +4,8 @@ module Spree
4
4
  module Event
5
5
  module Adapters
6
6
  module ActiveSupportNotifications
7
+ class InvalidEventNameType < StandardError; end
8
+
7
9
  extend self
8
10
 
9
11
  def fire(event_name, opts)
@@ -29,6 +31,36 @@ module Spree
29
31
  memo[name] = listeners if listeners.present?
30
32
  end
31
33
  end
34
+
35
+ # Normalizes the event name according to this specific adapter rules.
36
+ # When the event name is a string or a symbol, if the suffix is missing, then
37
+ # it is added automatically.
38
+ # When the event name is a regexp, due to the huge variability of regexps, adding
39
+ # or not the suffix is developer's responsibility (if you don't, you will subscribe
40
+ # to all internal rails events as well).
41
+ # When the event type is not supported, an error is raised.
42
+ #
43
+ # @param [String, Symbol, Regexp] event_name the event name, with or without the
44
+ # suffix (Spree::Config.events.suffix defaults to `.spree`).
45
+ def normalize_name(event_name)
46
+ case event_name
47
+ when Regexp
48
+ event_name
49
+ when String, Symbol
50
+ name = event_name.to_s
51
+ name.end_with?(suffix) ? name : [name, suffix].join
52
+ else
53
+ raise InvalidEventNameType, "Invalid event name type: #{event_name.class}"
54
+ end
55
+ end
56
+
57
+ # The suffix used for namespacing event names, defaults to
58
+ # `.spree`
59
+ #
60
+ # @see Spree::Event::Configuration#suffix
61
+ def suffix
62
+ Spree::Config.events.suffix
63
+ end
32
64
  end
33
65
  end
34
66
  end
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spree/core/class_constantizer'
4
-
5
3
  module Spree
6
4
  module Event
7
5
  class Configuration
8
- def subscribers
9
- @subscribers ||= ::Spree::Core::ClassConstantizer::Set.new.tap do |set|
10
- set << 'Spree::MailerSubscriber'
11
- end
6
+ def subscriber_registry
7
+ @subscriber_registry ||= Spree::Event::SubscriberRegistry.new
12
8
  end
13
9
 
14
- attr_writer :adapter, :suffix
10
+ attr_writer :adapter, :suffix, :autoload_subscribers
11
+
12
+ def autoload_subscribers
13
+ @autoload_subscribers.nil? ? true : !!@autoload_subscribers
14
+ end
15
15
 
16
16
  def adapter
17
17
  @adapter ||= Spree::Event::Adapters::ActiveSupportNotifications
@@ -19,13 +19,20 @@ module Spree
19
19
  # end
20
20
  # end
21
21
  #
22
- # EmailSender.subscribe!
22
+ # # Optional, required only when the subscriber needs to be loaded manually.
23
+ # #
24
+ # # If Spree::Config.events.autoload_subscribers is set to `true` and the module
25
+ # # file matches the pattern `app/subscribers/**/*_subscriber.rb` then it will
26
+ # # be loaded automatically at boot and this line can be removed:
27
+ # EmailSender.activate
23
28
  module Subscriber
24
29
  def self.included(base)
25
30
  base.extend base
26
31
 
27
32
  base.mattr_accessor :event_actions
28
33
  base.event_actions = {}
34
+
35
+ Spree::Event.subscriber_registry.register(base)
29
36
  end
30
37
 
31
38
  # Declares a method name in the including module that can be subscribed/unsubscribed
@@ -52,32 +59,27 @@ module Spree
52
59
  # end
53
60
  # end
54
61
  def event_action(method_name, event_name: nil)
55
- mattr_accessor "#{method_name}_handler"
56
62
  event_actions[method_name] = (event_name || method_name).to_s
57
63
  end
58
64
 
59
- # Subscribes all declared event actions to their events. Only actions that are subscribed
65
+ # Activates all declared event actions to their events. Only actions that are activated
60
66
  # will be called when their event fires.
61
67
  #
62
- # @example subscribe all event actions for module 'EmailSender'
63
- # EmailSender.subscribe!
64
- def subscribe!
65
- unsubscribe!
66
- event_actions.each do |event_action, event_name|
67
- send "#{event_action}_handler=", Spree::Event.subscribe(event_name) { |event|
68
- send event_action, event
69
- }
70
- end
68
+ # @example activate all event actions for module 'EmailSender'
69
+ # EmailSender.activate
70
+ def activate
71
+ Spree::Event.subscriber_registry.activate_subscriber(self)
71
72
  end
72
73
 
73
- # Unsubscribes all declared event actions from their events. This means that when an event
74
- # fires then none of its unsubscribed event actions will be called.
75
- # @example unsubscribe all event actions for module 'EmailSender'
76
- # EmailSender.unsubscribe!
77
- def unsubscribe!
78
- event_actions.keys.each do |event_action|
79
- Spree::Event.unsubscribe send("#{event_action}_handler")
80
- end
74
+ # Deactivates all declared event actions (or a single specific one) from their events.
75
+ # This means that when an event fires then none of its unsubscribed event actions will
76
+ # be called.
77
+ # @example deactivate all event actions for module 'EmailSender'
78
+ # EmailSender.deactivate
79
+ # @example deactivate only order_finalized for module 'EmailSender'
80
+ # EmailSender.deactivate(:order_finalized)
81
+ def deactivate(event_action_name = nil)
82
+ Spree::Event.subscriber_registry.deactivate_subscriber(self, event_action_name)
81
83
  end
82
84
  end
83
85
  end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree
4
+ module Event
5
+ class SubscriberRegistry
6
+ def initialize
7
+ @registry = {}
8
+ @semaphore = Mutex.new
9
+ end
10
+
11
+ def register(subscriber)
12
+ registry[subscriber.name] ||= {}
13
+ end
14
+
15
+ def activate_autoloadable_subscribers
16
+ require_subscriber_files
17
+ activate_all_subscribers
18
+ end
19
+
20
+ def activate_all_subscribers
21
+ registry.each_key { |subscriber_name| activate_subscriber(subscriber_name.constantize) }
22
+ end
23
+
24
+ def deactivate_all_subscribers
25
+ registry.each_key { |subscriber_name| deactivate_subscriber(subscriber_name.constantize) }
26
+ end
27
+
28
+ def activate_subscriber(subscriber)
29
+ return unless registry[subscriber.name]
30
+
31
+ subscriber.event_actions.each do |event_action, event_name|
32
+ @semaphore.synchronize do
33
+ unsafe_deactivate_subscriber(subscriber, event_action)
34
+
35
+ subscription = Spree::Event.subscribe(event_name) { |event| subscriber.send(event_action, event) }
36
+
37
+ # deprecated mappings, to be removed when Solidus 2.10 is not supported anymore:
38
+ if subscriber.respond_to?("#{event_action}_handler=")
39
+ subscriber.send("#{event_action}_handler=", subscription)
40
+ end
41
+
42
+ registry[subscriber.name][event_action] = subscription
43
+ end
44
+ end
45
+ end
46
+
47
+ def deactivate_subscriber(subscriber, event_action_name = nil)
48
+ @semaphore.synchronize do
49
+ unsafe_deactivate_subscriber(subscriber, event_action_name)
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ attr_reader :registry
56
+
57
+ # Loads all Solidus' core and application's event subscribers files.
58
+ # The latter are loaded automatically only when the preference
59
+ # Spree::Config.events.autoload_subscribers is set to a truthy value.
60
+ #
61
+ # Files must be placed under the directory `app/subscribers` and their
62
+ # name must end with `_subscriber.rb`.
63
+ #
64
+ # Loading the files has the side effect of adding their module to the
65
+ # list in Spree::Event.subscribers.
66
+ def require_subscriber_files
67
+ pattern = "app/subscribers/**/*_subscriber.rb"
68
+
69
+ # Load Solidus subscribers
70
+ # rubocop:disable Rails/DynamicFindBy
71
+ solidus_core_dir = Gem::Specification.find_by_name('solidus_core').gem_dir
72
+ # rubocop:enable Rails/DynamicFindBy
73
+ Dir.glob(File.join(solidus_core_dir, pattern)) { |c| require_dependency(c.to_s) }
74
+
75
+ # Load application subscribers, only when the flag is set to true:
76
+ if Spree::Config.events.autoload_subscribers
77
+ Rails.root.glob(pattern) { |c| require_dependency(c.to_s) }
78
+ end
79
+ end
80
+
81
+ def unsafe_deactivate_subscriber(subscriber, event_action_name = nil)
82
+ to_unsubscribe = Array.wrap(event_action_name || subscriber.event_actions.keys)
83
+
84
+ to_unsubscribe.each do |event_action|
85
+ if (subscription = registry.dig(subscriber.name, event_action))
86
+ Spree::Event.unsubscribe(subscription)
87
+
88
+ registry[subscriber.name].delete(event_action)
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
data/lib/spree/event.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'event/adapters/active_support_notifications'
4
+ require_relative 'event/subscriber_registry'
4
5
  require_relative 'event/configuration'
5
6
  require_relative 'event/subscriber'
6
7
 
@@ -8,6 +9,8 @@ module Spree
8
9
  module Event
9
10
  extend self
10
11
 
12
+ delegate :activate_autoloadable_subscribers, :activate_all_subscribers, :deactivate_all_subscribers, to: :subscriber_registry
13
+
11
14
  # Allows to trigger events that can be subscribed using #subscribe. An
12
15
  # optional block can be passed that will be executed immediately. The
13
16
  # actual code implementation is delegated to the adapter.
@@ -21,7 +24,7 @@ module Spree
21
24
  # @order.finalize!
22
25
  # end
23
26
  def fire(event_name, opts = {})
24
- adapter.fire name_with_suffix(event_name.to_s), opts do
27
+ adapter.fire normalize_name(event_name), opts do
25
28
  yield opts if block_given?
26
29
  end
27
30
  end
@@ -29,8 +32,15 @@ module Spree
29
32
  # Subscribe to an event with the given name. The provided block is executed
30
33
  # every time the subscribed event is fired.
31
34
  #
32
- # @param [String] event_name the name of the event. The suffix ".spree"
33
- # will be added automatically if not present
35
+ # @param [String, Regexp] event_name the name of the event.
36
+ # When String, the suffix ".spree" will be added automatically if not present,
37
+ # when using the default adapter for ActiveSupportNotifications.
38
+ # When Regexp, due to the unpredictability of all possible regexp combinations,
39
+ # adding the suffix is developer's responsibility (if you don't, you will
40
+ # subscribe to all notifications, including internal Rails notifications
41
+ # as well).
42
+ #
43
+ # @see Spree::Event::Adapters::ActiveSupportNotifications#normalize_name
34
44
  #
35
45
  # @return a subscription object that can be used as reference in order
36
46
  # to remove the subscription
@@ -43,7 +53,7 @@ module Spree
43
53
  #
44
54
  # @see Spree::Event#unsubscribe
45
55
  def subscribe(event_name, &block)
46
- name = name_with_suffix(event_name)
56
+ name = normalize_name(event_name)
47
57
  listener_names << name
48
58
  adapter.subscribe(name, &block)
49
59
  end
@@ -61,7 +71,7 @@ module Spree
61
71
  # @example Unsubscribe an event by name with explicit prefix
62
72
  # Spree::Event.unsubscribe('order_finalized.spree')
63
73
  def unsubscribe(subscriber)
64
- name_or_subscriber = subscriber.is_a?(String) ? name_with_suffix(subscriber) : subscriber
74
+ name_or_subscriber = subscriber.is_a?(String) ? normalize_name(subscriber) : subscriber
65
75
  adapter.unsubscribe(name_or_subscriber)
66
76
  end
67
77
 
@@ -90,24 +100,16 @@ module Spree
90
100
  Spree::Config.events.adapter
91
101
  end
92
102
 
93
- # The suffix used for namespacing Solidus events, defaults to
94
- # `.spree`
95
- #
96
- # @see Spree::Event::Configuration#suffix
97
- def suffix
98
- Spree::Config.events.suffix
99
- end
100
-
101
103
  # @!attribute [r] subscribers
102
- # @return [Array<Spree::Event::Subscriber>] A list of subscribers used to support class reloading for Spree::Event::Subscriber instances
103
- def subscribers
104
- Spree::Config.events.subscribers
104
+ # @return <Spree::Event::SubscriberRegistry> The registry for supporting class reloading for Spree::Event::Subscriber instances
105
+ def subscriber_registry
106
+ Spree::Config.events.subscriber_registry
105
107
  end
106
108
 
107
109
  private
108
110
 
109
- def name_with_suffix(name)
110
- name.end_with?(suffix) ? name : [name, suffix].join
111
+ def normalize_name(name)
112
+ adapter.normalize_name(name)
111
113
  end
112
114
 
113
115
  def listener_names
data/lib/spree/i18n.rb CHANGED
@@ -1,8 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'i18n'
4
- require 'active_support/core_ext/array/extract_options'
5
- require 'action_view'
6
4
 
7
5
  module Spree
8
6
  def self.i18n_available_locales
@@ -11,29 +9,9 @@ module Spree
11
9
  end
12
10
  end
13
11
 
14
- class TranslationHelperWrapper # :nodoc:
15
- include ActionView::Helpers::TranslationHelper
16
- end
17
-
18
12
  # This value is used as a count for the pluralization helpers related to I18n
19
13
  # ex: Spree::Order.model_name.human(count: Spree::I18N_GENERIC_PLURAL)
20
14
  # Related to Solidus issue #1164, this is needed to avoid problems with
21
15
  # some pluralization calculators
22
16
  I18N_GENERIC_PLURAL = 2.1
23
-
24
- class << self
25
- # Add spree namespace and delegate to Rails TranslationHelper for some nice
26
- # extra functionality. e.g return reasonable strings for missing translations
27
-
28
- def translate(key, options = {})
29
- Spree::Deprecation.warn <<-WARN.squish
30
- Spree.t & Spree.translate have been deprecated.
31
- Instead use I18n.t('spree.your_translation_key')
32
- WARN
33
- options[:scope] = [:spree, *options[:scope]]
34
- TranslationHelperWrapper.new.translate(key, options)
35
- end
36
-
37
- alias_method :t, :translate
38
- end
39
17
  end
@@ -5,7 +5,8 @@ module Spree
5
5
  class CartonPreview < ActionMailer::Preview
6
6
  def shipped
7
7
  carton = Carton.joins(:orders).last
8
- raise "Your database needs at one shipped order with a carton to render this preview" unless carton
8
+ raise "Your database needs at least one shipped order with a carton to render this preview" unless carton
9
+
9
10
  Spree::Config.carton_shipped_email_class.shipped_email(order: carton.orders.first, carton: carton)
10
11
  end
11
12
  end
data/lib/spree/money.rb CHANGED
@@ -6,7 +6,6 @@ module Spree
6
6
  class Money
7
7
  include Comparable
8
8
  DifferentCurrencyError = Class.new(StandardError)
9
- RUBY_NUMERIC_STRING = /\A-?\d+(\.\d+)?\z/
10
9
 
11
10
  class <<self
12
11
  attr_accessor :default_formatting_rules
@@ -37,15 +36,8 @@ module Spree
37
36
  @money = amount
38
37
  else
39
38
  currency = (options[:currency] || Spree::Config[:currency])
40
- if amount.to_s =~ RUBY_NUMERIC_STRING
41
- @money = Monetize.from_string(amount, currency)
42
- else
43
- @money = Spree::Money.parse_to_money(amount, currency)
44
- Spree::Deprecation.warn <<-WARN.squish, caller
45
- Spree::Money was initialized with #{amount.inspect}, which will not be supported in the future.
46
- Instead use Spree::Money.new(#{@money.to_s.inspect}, options) or Spree::Money.parse(#{amount.inspect})
47
- WARN
48
- end
39
+
40
+ @money = Monetize.from_string(amount, currency)
49
41
  end
50
42
  @options = Spree::Money.default_formatting_rules.merge(options)
51
43
  end
@@ -80,14 +72,7 @@ module Spree
80
72
  def to_html(options = { html_wrap: true })
81
73
  output = format(options)
82
74
  # Maintain compatibility by checking html option renamed to html_wrap.
83
- if options[:html] || options[:html] == false
84
- Spree::Deprecation.warn <<-WARN.squish, caller
85
- Spree::Money#to_html called with Spree::Money#to_html(html: #{options[:html].inspect}),
86
- which will not be supported in the future.
87
- Instead use :html_wrap e.g. Spree::Money#to_html(html_wrap: #{options[:html].inspect})
88
- WARN
89
- end
90
- if options[:html_wrap] || options[:html]
75
+ if options[:html_wrap]
91
76
  output = output.html_safe
92
77
  end
93
78
  output
@@ -5,20 +5,20 @@ module Spree
5
5
  class ConfigurationDisplay < PermissionSets::Base
6
6
  def activate!
7
7
  can [:edit, :admin], :general_settings
8
- can [:display, :admin], Spree::TaxCategory
9
- can [:display, :admin], Spree::TaxRate
10
- can [:display, :admin], Spree::Zone
11
- can [:display, :admin], Spree::Country
12
- can [:display, :admin], Spree::State
13
- can [:display, :admin], Spree::PaymentMethod
14
- can [:display, :admin], Spree::Taxonomy
15
- can [:display, :admin], Spree::ShippingMethod
16
- can [:display, :admin], Spree::ShippingCategory
17
- can [:display, :admin], Spree::StockLocation
18
- can [:display, :admin], Spree::StockMovement
19
- can [:display, :admin], Spree::RefundReason
20
- can [:display, :admin], Spree::ReimbursementType
21
- can [:display, :admin], Spree::ReturnReason
8
+ can [:read, :admin], Spree::TaxCategory
9
+ can [:read, :admin], Spree::TaxRate
10
+ can [:read, :admin], Spree::Zone
11
+ can [:read, :admin], Spree::Country
12
+ can [:read, :admin], Spree::State
13
+ can [:read, :admin], Spree::PaymentMethod
14
+ can [:read, :admin], Spree::Taxonomy
15
+ can [:read, :admin], Spree::ShippingMethod
16
+ can [:read, :admin], Spree::ShippingCategory
17
+ can [:read, :admin], Spree::StockLocation
18
+ can [:read, :admin], Spree::StockMovement
19
+ can [:read, :admin], Spree::RefundReason
20
+ can [:read, :admin], Spree::ReimbursementType
21
+ can [:read, :admin], Spree::ReturnReason
22
22
  end
23
23
  end
24
24
  end
@@ -4,11 +4,11 @@ module Spree
4
4
  module PermissionSets
5
5
  class DefaultCustomer < PermissionSets::Base
6
6
  def activate!
7
- can :display, Country
8
- can :display, OptionType
9
- can :display, OptionValue
7
+ can :read, Country
8
+ can :read, OptionType
9
+ can :read, OptionValue
10
10
  can :create, Order
11
- can [:read, :update], Order, Order.where(user: user) do |order, token|
11
+ can [:show, :update], Order, Order.where(user: user) do |order, token|
12
12
  order.user == user || (order.guest_token.present? && token == order.guest_token)
13
13
  end
14
14
  cannot :update, Order do |order|
@@ -17,20 +17,20 @@ module Spree
17
17
  can :create, ReturnAuthorization do |return_authorization|
18
18
  return_authorization.order.user == user
19
19
  end
20
- can [:display, :update], CreditCard, user_id: user.id
21
- can :display, Product
22
- can :display, ProductProperty
23
- can :display, Property
20
+ can [:read, :update], CreditCard, user_id: user.id
21
+ can :read, Product
22
+ can :read, ProductProperty
23
+ can :read, Property
24
24
  can :create, Spree.user_class
25
- can [:read, :update, :update_email], Spree.user_class, id: user.id
26
- can :display, State
27
- can :display, StockItem, stock_location: { active: true }
28
- can :display, StockLocation, active: true
29
- can :display, Taxon
30
- can :display, Taxonomy
25
+ can [:show, :update, :update_email], Spree.user_class, id: user.id
26
+ can :read, State
27
+ can :read, StockItem, stock_location: { active: true }
28
+ can :read, StockLocation, active: true
29
+ can :read, Taxon
30
+ can :read, Taxonomy
31
31
  can [:save_in_address_book, :remove_from_address_book], Spree.user_class, id: user.id
32
- can [:display, :view_out_of_stock], Variant
33
- can :display, Zone
32
+ can [:read, :view_out_of_stock], Variant
33
+ can :read, Zone
34
34
  end
35
35
  end
36
36
  end
@@ -4,17 +4,17 @@ module Spree
4
4
  module PermissionSets
5
5
  class OrderDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin, :edit, :cart], Spree::Order
8
- can [:display, :admin], Spree::Payment
9
- can [:display, :admin], Spree::Shipment
10
- can [:display, :admin], Spree::Adjustment
11
- can [:display, :admin], Spree::LineItem
12
- can [:display, :admin], Spree::ReturnAuthorization
13
- can [:display, :admin], Spree::CustomerReturn
14
- can [:display, :admin], Spree::OrderCancellations
15
- can [:display, :admin], Spree::Reimbursement
16
- can [:display, :admin], Spree::ReturnItem
17
- can [:display, :admin], Spree::Refund
7
+ can [:read, :admin, :edit, :cart], Spree::Order
8
+ can [:read, :admin], Spree::Payment
9
+ can [:read, :admin], Spree::Shipment
10
+ can [:read, :admin], Spree::Adjustment
11
+ can [:read, :admin], Spree::LineItem
12
+ can [:read, :admin], Spree::ReturnAuthorization
13
+ can [:read, :admin], Spree::CustomerReturn
14
+ can [:read, :admin], Spree::OrderCancellations
15
+ can [:read, :admin], Spree::Reimbursement
16
+ can [:read, :admin], Spree::ReturnItem
17
+ can [:read, :admin], Spree::Refund
18
18
  end
19
19
  end
20
20
  end