solidus_core 2.9.6 → 2.11.0

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