solidus_core 4.1.6 → 4.5.1

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 (308) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/logo/solidus.svg +18 -1
  3. data/app/assets/images/logo/solidus_logo.png +0 -0
  4. data/app/helpers/spree/base_helper.rb +2 -2
  5. data/app/helpers/spree/core/controller_helpers/auth.rb +66 -0
  6. data/app/helpers/spree/core/controller_helpers/common.rb +82 -0
  7. data/app/helpers/spree/core/controller_helpers/order.rb +86 -0
  8. data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +165 -0
  9. data/app/helpers/spree/core/controller_helpers/pricing.rb +19 -0
  10. data/app/helpers/spree/core/controller_helpers/search.rb +16 -0
  11. data/app/helpers/spree/core/controller_helpers/store.rb +19 -0
  12. data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +74 -0
  13. data/app/mailers/spree/base_mailer.rb +1 -1
  14. data/app/mailers/spree/carton_mailer.rb +1 -1
  15. data/app/mailers/spree/order_mailer.rb +3 -3
  16. data/app/mailers/spree/reimbursement_mailer.rb +1 -1
  17. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
  18. data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
  19. data/app/models/concerns/spree/display_money.rb +1 -1
  20. data/app/models/concerns/spree/metadata.rb +64 -0
  21. data/app/models/concerns/spree/named_type.rb +2 -0
  22. data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
  23. data/app/models/concerns/spree/user_address_book.rb +8 -9
  24. data/app/models/concerns/spree/user_methods.rb +3 -3
  25. data/app/models/spree/address.rb +10 -8
  26. data/app/models/spree/adjustment.rb +15 -65
  27. data/app/models/spree/adjustment_reason.rb +2 -0
  28. data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
  29. data/app/models/spree/carton.rb +2 -2
  30. data/app/models/spree/core/state_machines/inventory_unit.rb +42 -0
  31. data/app/models/spree/core/state_machines/order/class_methods.rb +217 -0
  32. data/app/models/spree/core/state_machines/order.rb +42 -0
  33. data/app/models/spree/core/state_machines/payment.rb +61 -0
  34. data/app/models/spree/core/state_machines/reimbursement.rb +33 -0
  35. data/app/models/spree/core/state_machines/return_authorization.rb +32 -0
  36. data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
  37. data/app/models/spree/core/state_machines/return_item/reception_status.rb +42 -0
  38. data/app/models/spree/core/state_machines/shipment.rb +58 -0
  39. data/app/models/spree/credit_card.rb +12 -9
  40. data/app/models/spree/customer_return.rb +2 -0
  41. data/app/models/spree/deprecated_configurable_class.rb +40 -0
  42. data/app/models/spree/fulfilment_changer.rb +4 -4
  43. data/app/models/spree/inventory_unit.rb +2 -2
  44. data/app/models/spree/item_total.rb +28 -0
  45. data/app/models/spree/legacy_user.rb +1 -0
  46. data/app/models/spree/line_item.rb +22 -4
  47. data/app/models/spree/money.rb +120 -0
  48. data/app/models/spree/null_promotion_adjuster.rb +13 -0
  49. data/app/models/spree/null_promotion_advertiser.rb +9 -0
  50. data/app/models/spree/null_promotion_finder.rb +9 -0
  51. data/app/models/spree/null_promotion_handler.rb +44 -0
  52. data/app/models/spree/option_value.rb +1 -0
  53. data/app/models/spree/order.rb +54 -36
  54. data/app/models/spree/order_cancellations.rb +8 -8
  55. data/app/models/spree/order_inventory.rb +6 -4
  56. data/app/models/spree/order_merger.rb +1 -1
  57. data/app/models/spree/order_mutex.rb +2 -2
  58. data/app/models/spree/order_shipping.rb +9 -9
  59. data/app/models/spree/order_taxation.rb +1 -0
  60. data/app/models/spree/order_updater.rb +19 -40
  61. data/app/models/spree/payment/processing.rb +2 -2
  62. data/app/models/spree/payment.rb +3 -2
  63. data/app/models/spree/payment_create.rb +1 -1
  64. data/app/models/spree/payment_method/bogus_credit_card.rb +14 -9
  65. data/app/models/spree/payment_method/simple_bogus_credit_card.rb +12 -6
  66. data/app/models/spree/payment_method/store_credit.rb +1 -1
  67. data/app/models/spree/payment_method.rb +3 -1
  68. data/app/models/spree/payment_source.rb +5 -1
  69. data/app/models/spree/permission_set.rb +11 -0
  70. data/app/models/spree/permission_sets/base.rb +45 -0
  71. data/app/models/spree/permission_sets/configuration_display.rb +53 -0
  72. data/app/models/spree/permission_sets/configuration_management.rb +52 -0
  73. data/app/models/spree/permission_sets/dashboard_display.rb +28 -0
  74. data/app/models/spree/permission_sets/default_customer.rb +83 -0
  75. data/app/models/spree/permission_sets/order_display.rb +50 -0
  76. data/app/models/spree/permission_sets/order_management.rb +50 -0
  77. data/app/models/spree/permission_sets/product_display.rb +43 -0
  78. data/app/models/spree/permission_sets/product_management.rb +47 -0
  79. data/app/models/spree/permission_sets/restricted_stock_display.rb +33 -0
  80. data/app/models/spree/permission_sets/restricted_stock_management.rb +33 -0
  81. data/app/models/spree/permission_sets/stock_display.rb +26 -0
  82. data/app/models/spree/permission_sets/stock_management.rb +26 -0
  83. data/app/models/spree/permission_sets/super_user.rb +26 -0
  84. data/app/models/spree/permission_sets/user_display.rb +27 -0
  85. data/app/models/spree/permission_sets/user_management.rb +44 -0
  86. data/app/models/spree/preference.rb +1 -1
  87. data/app/models/spree/product.rb +13 -9
  88. data/app/models/spree/refund.rb +3 -1
  89. data/app/models/spree/refund_reason.rb +6 -1
  90. data/app/models/spree/reimbursement.rb +4 -4
  91. data/app/models/spree/reimbursement_performer.rb +3 -3
  92. data/app/models/spree/reimbursement_tax_calculator.rb +2 -2
  93. data/app/models/spree/reimbursement_type/credit.rb +1 -1
  94. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
  95. data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
  96. data/app/models/spree/reimbursement_type.rb +6 -1
  97. data/app/models/spree/return_authorization.rb +2 -0
  98. data/app/models/spree/return_item.rb +10 -10
  99. data/app/models/spree/return_reason.rb +6 -1
  100. data/app/models/spree/role.rb +3 -1
  101. data/app/models/spree/role_permission.rb +8 -0
  102. data/app/models/spree/shipment.rb +9 -7
  103. data/app/models/spree/shipping_category.rb +2 -0
  104. data/app/models/spree/shipping_rate.rb +2 -3
  105. data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +8 -12
  106. data/app/models/spree/stock/estimator.rb +1 -1
  107. data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
  108. data/app/models/spree/stock/package.rb +2 -2
  109. data/app/models/spree/stock/simple_coordinator.rb +36 -22
  110. data/app/models/spree/stock_item.rb +1 -0
  111. data/app/models/spree/stock_location.rb +5 -5
  112. data/app/models/spree/store.rb +3 -1
  113. data/app/models/spree/store_credit.rb +17 -15
  114. data/app/models/spree/store_credit_event.rb +4 -3
  115. data/app/models/spree/store_credit_reason.rb +6 -1
  116. data/app/models/spree/store_selector/by_server_name.rb +1 -1
  117. data/app/models/spree/tax/tax_helpers.rb +12 -1
  118. data/app/models/spree/tax_calculator/default.rb +3 -3
  119. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -1
  120. data/app/models/spree/tax_category.rb +3 -1
  121. data/app/models/spree/tax_rate.rb +7 -3
  122. data/app/models/spree/taxon.rb +22 -2
  123. data/app/models/spree/taxon_brand_selector.rb +22 -0
  124. data/app/models/spree/taxonomy.rb +2 -2
  125. data/app/models/spree/unauthorized_redirect_handler.rb +24 -0
  126. data/app/models/spree/unit_cancel.rb +1 -2
  127. data/app/models/spree/user_address.rb +9 -3
  128. data/app/models/spree/variant/scopes.rb +4 -0
  129. data/app/models/spree/variant/vat_price_generator.rb +1 -1
  130. data/app/models/spree/variant.rb +21 -8
  131. data/app/models/spree/wallet.rb +2 -2
  132. data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
  133. data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
  134. data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
  135. data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
  136. data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +0 -1
  137. data/config/locales/en.yml +33 -90
  138. data/db/default/spree/permission_sets.rb +10 -0
  139. data/db/default/spree/return_reasons.rb +3 -1
  140. data/db/default/spree/states.rb +1 -1
  141. data/db/migrate/20160101010000_solidus_one_four.rb +0 -127
  142. data/db/migrate/20220419170826_remove_archived_user_addresses.rb +12 -0
  143. data/db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb +1 -1
  144. data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
  145. data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
  146. data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
  147. data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
  148. data/db/migrate/20250129061658_add_metadata_to_spree_resources.rb +28 -0
  149. data/db/migrate/20250201172950_add_gtin_and_condition_to_spree_variant.rb +6 -0
  150. data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +7 -0
  151. data/db/migrate/20250221152004_add_metadata_to_users.rb +13 -0
  152. data/db/seeds.rb +1 -0
  153. data/lib/generators/solidus/install/app_templates/authentication/custom.rb +0 -5
  154. data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
  155. data/lib/generators/solidus/install/install_generator.rb +64 -15
  156. data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +15 -12
  157. data/lib/generators/solidus/update/update_generator.rb +1 -1
  158. data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
  159. data/lib/generators/spree/dummy/templates/rails/application.rb.tt +1 -1
  160. data/lib/generators/spree/dummy/templates/rails/database.yml +41 -93
  161. data/lib/generators/spree/dummy/templates/rails/manifest.js +3 -0
  162. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  163. data/lib/spree/app_configuration.rb +102 -67
  164. data/lib/spree/core/class_constantizer.rb +2 -2
  165. data/lib/spree/core/controller_helpers/auth.rb +5 -61
  166. data/lib/spree/core/controller_helpers/common.rb +5 -80
  167. data/lib/spree/core/controller_helpers/order.rb +5 -86
  168. data/lib/spree/core/controller_helpers/payment_parameters.rb +5 -163
  169. data/lib/spree/core/controller_helpers/pricing.rb +5 -17
  170. data/lib/spree/core/controller_helpers/search.rb +5 -14
  171. data/lib/spree/core/controller_helpers/store.rb +5 -17
  172. data/lib/spree/core/controller_helpers/strong_parameters.rb +5 -71
  173. data/lib/spree/core/engine.rb +13 -5
  174. data/lib/spree/core/environment/calculators.rb +35 -3
  175. data/lib/spree/core/environment/promotions.rb +25 -4
  176. data/lib/spree/core/environment_extension.rb +16 -2
  177. data/lib/spree/core/importer/order.rb +5 -5
  178. data/lib/spree/core/importer/product.rb +3 -3
  179. data/lib/spree/core/nested_class_set.rb +28 -0
  180. data/lib/spree/core/null_promotion_configuration.rb +84 -0
  181. data/lib/spree/core/product_filters.rb +1 -1
  182. data/lib/spree/core/search/variant.rb +2 -2
  183. data/lib/spree/core/state_machines/inventory_unit.rb +5 -40
  184. data/lib/spree/core/state_machines/order.rb +5 -251
  185. data/lib/spree/core/state_machines/payment.rb +5 -59
  186. data/lib/spree/core/state_machines/reimbursement.rb +5 -31
  187. data/lib/spree/core/state_machines/return_authorization.rb +5 -30
  188. data/lib/spree/core/state_machines/return_item/acceptance_status.rb +5 -49
  189. data/lib/spree/core/state_machines/return_item/reception_status.rb +5 -40
  190. data/lib/spree/core/state_machines/shipment.rb +5 -56
  191. data/lib/spree/core/state_machines.rb +48 -81
  192. data/lib/spree/core/validators/email.rb +1 -1
  193. data/lib/spree/core/version.rb +2 -2
  194. data/lib/spree/core.rb +2 -14
  195. data/lib/spree/deprecator.rb +9 -0
  196. data/lib/spree/i18n.rb +1 -1
  197. data/lib/spree/mailer_previews/carton_preview.rb +1 -1
  198. data/lib/spree/money.rb +5 -118
  199. data/lib/spree/permission_sets/base.rb +5 -30
  200. data/lib/spree/permission_sets/configuration_display.rb +5 -41
  201. data/lib/spree/permission_sets/configuration_management.rb +5 -40
  202. data/lib/spree/permission_sets/dashboard_display.rb +5 -14
  203. data/lib/spree/permission_sets/default_customer.rb +5 -71
  204. data/lib/spree/permission_sets/order_display.rb +5 -38
  205. data/lib/spree/permission_sets/order_management.rb +5 -38
  206. data/lib/spree/permission_sets/product_display.rb +5 -31
  207. data/lib/spree/permission_sets/product_management.rb +5 -35
  208. data/lib/spree/permission_sets/restricted_stock_display.rb +5 -21
  209. data/lib/spree/permission_sets/restricted_stock_management.rb +5 -21
  210. data/lib/spree/permission_sets/stock_display.rb +5 -14
  211. data/lib/spree/permission_sets/stock_management.rb +5 -14
  212. data/lib/spree/permission_sets/super_user.rb +5 -14
  213. data/lib/spree/permission_sets/user_display.rb +5 -15
  214. data/lib/spree/permission_sets/user_management.rb +5 -32
  215. data/lib/spree/permission_sets.rb +5 -18
  216. data/lib/spree/permitted_attributes.rb +21 -9
  217. data/lib/spree/preferences/configuration.rb +4 -0
  218. data/lib/spree/preferences/persistable.rb +7 -1
  219. data/lib/spree/preferences/store.rb +2 -2
  220. data/lib/spree/testing_support/capybara_ext.rb +11 -1
  221. data/lib/spree/testing_support/common_rake.rb +1 -0
  222. data/lib/spree/testing_support/dummy_ability.rb +7 -0
  223. data/lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css +1 -0
  224. data/lib/spree/testing_support/dummy_app/database.yml +37 -46
  225. data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
  226. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +3 -6
  227. data/lib/spree/testing_support/dummy_app.rb +33 -19
  228. data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
  229. data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
  230. data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
  231. data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
  232. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
  233. data/lib/spree/testing_support/factories/order_factory.rb +13 -24
  234. data/lib/spree/testing_support/factories/product_factory.rb +1 -1
  235. data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
  236. data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
  237. data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
  238. data/lib/spree/testing_support/factories/user_factory.rb +1 -1
  239. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  240. data/lib/spree/testing_support/order_walkthrough.rb +3 -3
  241. data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
  242. data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
  243. data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
  244. data/lib/tasks/colorado_delivery_fee.rake +2 -2
  245. data/solidus_core.gemspec +7 -10
  246. metadata +107 -109
  247. data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
  248. data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
  249. data/app/models/spree/calculator/distributed_amount.rb +0 -33
  250. data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
  251. data/app/models/spree/calculator/flexi_rate.rb +0 -22
  252. data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
  253. data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
  254. data/app/models/spree/calculator/tiered_percent.rb +0 -62
  255. data/app/models/spree/line_item_action.rb +0 -8
  256. data/app/models/spree/order_promotion.rb +0 -27
  257. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
  258. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
  259. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
  260. data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
  261. data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
  262. data/app/models/spree/promotion/rules/first_order.rb +0 -38
  263. data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
  264. data/app/models/spree/promotion/rules/item_total.rb +0 -86
  265. data/app/models/spree/promotion/rules/nth_order.rb +0 -45
  266. data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
  267. data/app/models/spree/promotion/rules/option_value.rb +0 -50
  268. data/app/models/spree/promotion/rules/product.rb +0 -86
  269. data/app/models/spree/promotion/rules/store.rb +0 -26
  270. data/app/models/spree/promotion/rules/taxon.rb +0 -91
  271. data/app/models/spree/promotion/rules/user.rb +0 -34
  272. data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
  273. data/app/models/spree/promotion/rules/user_role.rb +0 -45
  274. data/app/models/spree/promotion.rb +0 -271
  275. data/app/models/spree/promotion_action.rb +0 -47
  276. data/app/models/spree/promotion_category.rb +0 -8
  277. data/app/models/spree/promotion_chooser.rb +0 -34
  278. data/app/models/spree/promotion_code/batch_builder.rb +0 -64
  279. data/app/models/spree/promotion_code.rb +0 -54
  280. data/app/models/spree/promotion_code_batch.rb +0 -27
  281. data/app/models/spree/promotion_handler/cart.rb +0 -75
  282. data/app/models/spree/promotion_handler/coupon.rb +0 -123
  283. data/app/models/spree/promotion_handler/page.rb +0 -26
  284. data/app/models/spree/promotion_handler/shipping.rb +0 -61
  285. data/app/models/spree/promotion_rule.rb +0 -55
  286. data/app/models/spree/promotion_rule_role.rb +0 -8
  287. data/app/models/spree/promotion_rule_store.rb +0 -10
  288. data/app/models/spree/promotion_rule_taxon.rb +0 -8
  289. data/app/models/spree/promotion_rule_user.rb +0 -10
  290. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
  291. data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
  292. data/bin/rails +0 -13
  293. data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
  294. data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
  295. data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
  296. data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
  297. data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
  298. data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
  299. data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
  300. data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
  301. data/lib/generators/spree/dummy/templates/rails/script/rails +0 -6
  302. data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
  303. data/lib/spree/permission_sets/promotion_display.rb +0 -25
  304. data/lib/spree/permission_sets/promotion_management.rb +0 -25
  305. data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
  306. data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
  307. data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
  308. data/lib/spree/testing_support/factories/promotion_factory.rb +0 -98
@@ -85,19 +85,15 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
85
85
  t.integer "adjustable_id", null: false
86
86
  t.decimal "amount", precision: 10, scale: 2
87
87
  t.string "label"
88
- t.boolean "eligible", default: true
89
88
  t.datetime "created_at", precision: 6
90
89
  t.datetime "updated_at", precision: 6
91
90
  t.integer "order_id", null: false
92
91
  t.boolean "included", default: false
93
- t.integer "promotion_code_id"
94
92
  t.integer "adjustment_reason_id"
95
93
  t.boolean "finalized", default: false, null: false
96
94
  t.index ["adjustable_id", "adjustable_type"], name: "index_spree_adjustments_on_adjustable_id_and_adjustable_type"
97
95
  t.index ["adjustable_id"], name: "index_adjustments_on_order_id"
98
- t.index ["eligible"], name: "index_spree_adjustments_on_eligible"
99
96
  t.index ["order_id"], name: "index_spree_adjustments_on_order_id"
100
- t.index ["promotion_code_id"], name: "index_spree_adjustments_on_promotion_code_id"
101
97
  t.index ["source_id", "source_type"], name: "index_spree_adjustments_on_source_id_and_source_type"
102
98
  end
103
99
 
@@ -201,16 +197,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
201
197
  t.index ["variant_id"], name: "index_inventory_units_on_variant_id"
202
198
  end
203
199
 
204
- create_table "spree_line_item_actions", force: :cascade do |t|
205
- t.integer "line_item_id", null: false
206
- t.integer "action_id", null: false
207
- t.integer "quantity", default: 0
208
- t.datetime "created_at", precision: 6
209
- t.datetime "updated_at", precision: 6
210
- t.index ["action_id"], name: "index_spree_line_item_actions_on_action_id"
211
- t.index ["line_item_id"], name: "index_spree_line_item_actions_on_line_item_id"
212
- end
213
-
214
200
  create_table "spree_line_items", force: :cascade do |t|
215
201
  t.integer "variant_id"
216
202
  t.integer "order_id"
@@ -326,16 +312,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
326
312
  t.index ["user_id"], name: "index_spree_orders_on_user_id"
327
313
  end
328
314
 
329
- create_table "spree_orders_promotions", force: :cascade do |t|
330
- t.integer "order_id"
331
- t.integer "promotion_id"
332
- t.integer "promotion_code_id"
333
- t.datetime "created_at", precision: 6
334
- t.datetime "updated_at", precision: 6
335
- t.index ["order_id", "promotion_id"], name: "index_spree_orders_promotions_on_order_id_and_promotion_id"
336
- t.index ["promotion_code_id"], name: "index_spree_orders_promotions_on_promotion_code_id"
337
- end
338
-
339
315
  create_table "spree_payment_capture_events", force: :cascade do |t|
340
316
  t.decimal "amount", precision: 10, scale: 2, default: "0.0"
341
317
  t.integer "payment_id"
@@ -411,15 +387,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
411
387
  t.index ["product_id"], name: "index_spree_product_option_types_on_product_id"
412
388
  end
413
389
 
414
- create_table "spree_product_promotion_rules", force: :cascade do |t|
415
- t.integer "product_id"
416
- t.integer "promotion_rule_id"
417
- t.datetime "created_at", precision: 6
418
- t.datetime "updated_at", precision: 6
419
- t.index ["product_id"], name: "index_products_promotion_rules_on_product_id"
420
- t.index ["promotion_rule_id"], name: "index_products_promotion_rules_on_promotion_rule_id"
421
- end
422
-
423
390
  create_table "spree_product_properties", force: :cascade do |t|
424
391
  t.string "value"
425
392
  t.integer "product_id"
@@ -463,100 +430,6 @@ class SolidusOneFour < ActiveRecord::Migration[5.0]
463
430
  t.index ["taxon_id"], name: "index_spree_products_taxons_on_taxon_id"
464
431
  end
465
432
 
466
- create_table "spree_promotion_action_line_items", force: :cascade do |t|
467
- t.integer "promotion_action_id"
468
- t.integer "variant_id"
469
- t.integer "quantity", default: 1
470
- t.datetime "created_at", precision: 6
471
- t.datetime "updated_at", precision: 6
472
- t.index ["promotion_action_id"], name: "index_spree_promotion_action_line_items_on_promotion_action_id"
473
- t.index ["variant_id"], name: "index_spree_promotion_action_line_items_on_variant_id"
474
- end
475
-
476
- create_table "spree_promotion_actions", force: :cascade do |t|
477
- t.integer "promotion_id"
478
- t.integer "position"
479
- t.string "type"
480
- t.datetime "deleted_at"
481
- t.text "preferences"
482
- t.datetime "created_at", precision: 6
483
- t.datetime "updated_at", precision: 6
484
- t.index ["deleted_at"], name: "index_spree_promotion_actions_on_deleted_at"
485
- t.index ["id", "type"], name: "index_spree_promotion_actions_on_id_and_type"
486
- t.index ["promotion_id"], name: "index_spree_promotion_actions_on_promotion_id"
487
- end
488
-
489
- create_table "spree_promotion_categories", force: :cascade do |t|
490
- t.string "name"
491
- t.datetime "created_at", precision: 6
492
- t.datetime "updated_at", precision: 6
493
- t.string "code"
494
- end
495
-
496
- create_table "spree_promotion_codes", force: :cascade do |t|
497
- t.integer "promotion_id", null: false
498
- t.string "value", null: false
499
- t.datetime "created_at", precision: 6
500
- t.datetime "updated_at", precision: 6
501
- t.index ["promotion_id"], name: "index_spree_promotion_codes_on_promotion_id"
502
- t.index ["value"], name: "index_spree_promotion_codes_on_value", unique: true
503
- end
504
-
505
- create_table "spree_promotion_rule_taxons", force: :cascade do |t|
506
- t.integer "taxon_id"
507
- t.integer "promotion_rule_id"
508
- t.datetime "created_at", precision: 6
509
- t.datetime "updated_at", precision: 6
510
- t.index ["promotion_rule_id"], name: "index_spree_promotion_rule_taxons_on_promotion_rule_id"
511
- t.index ["taxon_id"], name: "index_spree_promotion_rule_taxons_on_taxon_id"
512
- end
513
-
514
- create_table "spree_promotion_rules", force: :cascade do |t|
515
- t.integer "promotion_id"
516
- t.integer "product_group_id"
517
- t.string "type"
518
- t.datetime "created_at", precision: 6
519
- t.datetime "updated_at", precision: 6
520
- t.string "code"
521
- t.text "preferences"
522
- t.index ["product_group_id"], name: "index_promotion_rules_on_product_group_id"
523
- t.index ["promotion_id"], name: "index_spree_promotion_rules_on_promotion_id"
524
- end
525
-
526
- create_table "spree_promotion_rules_users", force: :cascade do |t|
527
- t.integer "user_id"
528
- t.integer "promotion_rule_id"
529
- t.datetime "created_at", precision: 6
530
- t.datetime "updated_at", precision: 6
531
- t.index ["promotion_rule_id"], name: "index_promotion_rules_users_on_promotion_rule_id"
532
- t.index ["user_id"], name: "index_promotion_rules_users_on_user_id"
533
- end
534
-
535
- create_table "spree_promotions", force: :cascade do |t|
536
- t.string "description"
537
- t.datetime "expires_at"
538
- t.datetime "starts_at"
539
- t.string "name"
540
- t.string "type"
541
- t.integer "usage_limit"
542
- t.string "match_policy", default: "all"
543
- t.string "code"
544
- t.boolean "advertise", default: false
545
- t.string "path"
546
- t.datetime "created_at", precision: 6
547
- t.datetime "updated_at", precision: 6
548
- t.integer "promotion_category_id"
549
- t.integer "per_code_usage_limit"
550
- t.boolean "apply_automatically", default: false
551
- t.index ["advertise"], name: "index_spree_promotions_on_advertise"
552
- t.index ["apply_automatically"], name: "index_spree_promotions_on_apply_automatically"
553
- t.index ["code"], name: "index_spree_promotions_on_code"
554
- t.index ["expires_at"], name: "index_spree_promotions_on_expires_at"
555
- t.index ["id", "type"], name: "index_spree_promotions_on_id_and_type"
556
- t.index ["promotion_category_id"], name: "index_spree_promotions_on_promotion_category_id"
557
- t.index ["starts_at"], name: "index_spree_promotions_on_starts_at"
558
- end
559
-
560
433
  create_table "spree_properties", force: :cascade do |t|
561
434
  t.string "name"
562
435
  t.string "presentation", null: false
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ class RemoveArchivedUserAddresses < ActiveRecord::Migration[5.2]
4
+ def up
5
+ Spree::UserAddress.where(archived: true).delete_all
6
+ remove_column :spree_user_addresses, :archived, :boolean, default: false
7
+ end
8
+
9
+ def down
10
+ add_column :spree_user_addresses, :archived, :boolean, default: false
11
+ end
12
+ end
@@ -5,7 +5,7 @@ class DropDeprecatedAddressIdFromShipments < ActiveRecord::Migration[5.2]
5
5
  end
6
6
 
7
7
  def down
8
- add_column :spree_shipments, :deprecated_address_id
8
+ add_column :spree_shipments, :deprecated_address_id, :integer
9
9
  add_index :spree_shipments, :deprecated_address_id, name: :index_spree_shipments_on_deprecated_address_id
10
10
  end
11
11
  end
@@ -0,0 +1,9 @@
1
+ class CreateSpreePermissionSetsInCore < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :spree_permission_sets, if_not_exists: true do |t|
4
+ t.string :name
5
+ t.string :set
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSpreeRolesPermissionsInCore < ActiveRecord::Migration[7.0]
2
+ def change
3
+ create_table :spree_role_permissions, if_not_exists: true do |t|
4
+ t.references :role
5
+ t.references :permission_set
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddDescriptionToSpreeRoles < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_roles, :description, :text
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddPrivilegeAndCategoryToSpreePermissionSets < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_permission_sets, :privilege, :string
4
+ add_column :spree_permission_sets, :category, :string
5
+ end
6
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddMetadataToSpreeResources < ActiveRecord::Migration[7.2]
4
+ def change
5
+ # List of Resources to add metadata columns to
6
+ %i[
7
+ spree_orders
8
+ spree_line_items
9
+ spree_shipments
10
+ spree_payments
11
+ spree_refunds
12
+ spree_customer_returns
13
+ spree_store_credit_events
14
+ spree_return_authorizations
15
+ ].each do |table_name|
16
+ change_table table_name do |t|
17
+ # Check if the database supports jsonb for efficient querying
18
+ if t.respond_to?(:jsonb)
19
+ t.jsonb(:customer_metadata, default: {}) unless t.column_exists?(:customer_metadata)
20
+ t.jsonb(:admin_metadata, default: {}) unless t.column_exists?(:admin_metadata)
21
+ else
22
+ t.json(:customer_metadata) unless t.column_exists?(:customer_metadata)
23
+ t.json(:admin_metadata) unless t.column_exists?(:admin_metadata)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,6 @@
1
+ class AddGtinAndConditionToSpreeVariant < ActiveRecord::Migration[7.0]
2
+ def change
3
+ add_column :spree_variants, :gtin, :string
4
+ add_column :spree_variants, :condition, :string
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ class AddPrimaryTaxonToProducts < ActiveRecord::Migration[7.0]
2
+ def change
3
+ change_table :spree_products do |t|
4
+ t.references :primary_taxon, type: :integer, foreign_key: { to_table: :spree_taxons }
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,13 @@
1
+ class AddMetadataToUsers < ActiveRecord::Migration[7.0]
2
+ def change
3
+ change_table Spree.user_class.table_name do |t|
4
+ if t.respond_to?(:jsonb)
5
+ t.jsonb(:customer_metadata, default: {}) unless t.column_exists?(:customer_metadata)
6
+ t.jsonb(:admin_metadata, default: {}) unless t.column_exists?(:admin_metadata)
7
+ else
8
+ t.json(:customer_metadata) unless t.column_exists?(:customer_metadata)
9
+ t.json(:admin_metadata) unless t.column_exists?(:admin_metadata)
10
+ end
11
+ end
12
+ end
13
+ end
data/db/seeds.rb CHANGED
@@ -13,6 +13,7 @@ shell = Thor::Base.shell.new
13
13
  zones
14
14
  refund_reasons
15
15
  roles
16
+ permission_sets
16
17
  shipping_categories
17
18
  ).each do |seed|
18
19
  shell.say_status :seed, seed
@@ -9,11 +9,6 @@ initializer 'spree_authentication.rb', <<~RUBY
9
9
  nil
10
10
  end
11
11
  end
12
-
13
- # Re-raise the original authorization error on anauthorized access
14
- Rails.application.config.to_prepare do
15
- Spree::BaseController.unauthorized_redirect = -> { raise "Define the behavior for unauthorized access in \#{__FILE__}." }
16
- end
17
12
  RUBY
18
13
 
19
14
  create_file 'app/views/spree/admin/shared/_navigation_footer.html.erb', <<~ERB
@@ -1 +1 @@
1
- apply 'https://github.com/solidusio/solidus_starter_frontend/raw/v4.1/template.rb'
1
+ apply 'https://github.com/solidusio/solidus_starter_frontend/raw/v4.5/template.rb'
@@ -34,10 +34,13 @@ module Solidus
34
34
  class_option :seed, type: :boolean, default: true, banner: 'Load seed data (migrations must be run)'
35
35
  class_option :sample, type: :boolean, default: true, banner: 'Load sample data (migrations and seeds must be run)'
36
36
  class_option :active_storage, type: :boolean, default: true, banner: 'Install ActiveStorage as image attachments handler for products and taxons'
37
+ class_option :admin_preview, type: :boolean, default: true, desc: 'Install the admin preview'
38
+ class_option :build_admin_tailwind, type: :boolean, default: true, desc: 'Build and install Solidus Admin Tailwind CSS file and rake tasks'
37
39
  class_option :auto_accept, type: :boolean
38
40
  class_option :user_class, type: :string
39
41
  class_option :admin_email, type: :string
40
42
  class_option :admin_password, type: :string
43
+ class_option :mount_point, type: :string, desc: "Indicates where Solidus should be mounted. Defaults to '/'"
41
44
 
42
45
  class_option :frontend, type: :string, enum: FRONTENDS.map { _1[:name] }, default: nil, desc: "Indicates which frontend to install."
43
46
  class_option :authentication, type: :string, enum: AUTHENTICATIONS.map { _1[:name] }, default: nil, desc: "Indicates which authentication system to install."
@@ -86,6 +89,36 @@ module Solidus
86
89
  ENV['SOLIDUS_SKIP_MIGRATIONS_CHECK'] = 'true'
87
90
  end
88
91
 
92
+ def install_routes
93
+ if Pathname(app_path).join('config', 'routes.rb').read.include? CORE_MOUNT_ROUTE
94
+ say_status :route_exist, CORE_MOUNT_ROUTE, :blue
95
+ else
96
+ say_status :installing, "solidus routes"
97
+ mount_point = options[:mount_point] || ask_with_default(
98
+ desc: 'Where would you like to mount Solidus? (E.g. "/store" or "/shop")',
99
+ default: '/',
100
+ )
101
+
102
+ shell.mute do
103
+ route <<~RUBY
104
+ # This line mounts Solidus's routes at the root of your application.
105
+ #
106
+ # Unless you manually picked only a subset of Solidus components, this will mount routes for:
107
+ # - solidus_backend
108
+ # - solidus_api
109
+ # This means, any requests to URLs such as /admin/products, will go to Spree::Admin::ProductsController.
110
+ #
111
+ # If you are using the Starter Frontend as your frontend, be aware that all the storefront routes are defined
112
+ # separately in this file and are not part of the Solidus::Core::Engine engine.
113
+ #
114
+ # If you would like to change where this engine is mounted, simply change the :at option to something different.
115
+ # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree"
116
+ #{CORE_MOUNT_ROUTE}, at: '#{mount_point}'
117
+ RUBY
118
+ end
119
+ end
120
+ end
121
+
89
122
  def add_files
90
123
  template 'config/initializers/spree.rb.tt', 'config/initializers/spree.rb'
91
124
  end
@@ -133,21 +166,6 @@ module Solidus
133
166
  rake 'db:create'
134
167
  end
135
168
 
136
- def install_routes
137
- if Pathname(app_path).join('config', 'routes.rb').read.include? CORE_MOUNT_ROUTE
138
- say_status :route_exist, CORE_MOUNT_ROUTE, :blue
139
- else
140
- route <<~RUBY
141
- # This line mounts Solidus's routes at the root of your application.
142
- # This means, any requests to URLs such as /products, will go to Spree::ProductsController.
143
- # If you would like to change where this engine is mounted, simply change the :at option to something different.
144
- #
145
- # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree"
146
- #{CORE_MOUNT_ROUTE}, at: '/'
147
- RUBY
148
- end
149
- end
150
-
151
169
  def run_migrations
152
170
  if @run_migrations
153
171
  say_status :running, "migrations"
@@ -164,6 +182,16 @@ module Solidus
164
182
  apply_template_for :payment_method, @selected_payment_method
165
183
  end
166
184
 
185
+ def install_solidus_admin
186
+ return unless options[:admin_preview]
187
+
188
+ say_status :installing, "SolidusAdmin", :blue
189
+ unless File.read(app_path.join('Gemfile')).include?('solidus_admin')
190
+ bundle_command 'add solidus_admin -v ">= 0.2"'
191
+ end
192
+ generate "solidus_admin:install #{'--tailwind' if options[:build_admin_tailwind]}"
193
+ end
194
+
167
195
  def populate_seed_data
168
196
  if @load_seed_data
169
197
  say_status :loading, "seed data"
@@ -200,6 +228,27 @@ module Solidus
200
228
  Bundler.reset_paths!
201
229
  end
202
230
 
231
+ def ask_with_default(desc:, default:)
232
+ if options[:auto_accept]
233
+ say_status :using, "#{default} (default)"
234
+ return default
235
+ end
236
+
237
+ default_label = " (#{set_color :default, :bold}: \"#{default}\")" if default
238
+
239
+ say_status :question, "#{desc}#{default_label}.", :yellow
240
+ answer = ask(set_color("answer:".rjust(13), :blue, :bold)).to_s.downcase.presence
241
+
242
+ case answer
243
+ when nil
244
+ say_status :using, "#{default} (default)"
245
+ default
246
+ else
247
+ say_status :using, answer
248
+ answer
249
+ end
250
+ end
251
+
203
252
  def ask_with_description(desc:, limited_to:, default:)
204
253
  loop do
205
254
  say_status :question, desc, :yellow
@@ -33,19 +33,19 @@ Spree.config do |config|
33
33
  # Custom logo for the admin
34
34
  # config.admin_interface_logo = "logo/solidus.svg"
35
35
 
36
- # Gateway credentials can be configured statically here and referenced from
36
+ # Payment gateway credentials can be configured statically here and referenced from
37
37
  # the admin. They can also be fully configured from the admin.
38
38
  #
39
- # Please note that you need to use the solidus_stripe gem to have
40
- # Stripe working: https://github.com/solidusio-contrib/solidus_stripe
39
+ # Please note that the example below requires the `solidus_stripe` ~> 5.0 gem
40
+ # in order to work properly (see https://github.com/solidusio-contrib/solidus_stripe).
41
41
  #
42
42
  # config.static_model_preferences.add(
43
- # Spree::PaymentMethod::StripeCreditCard,
44
- # 'stripe_env_credentials',
45
- # secret_key: ENV['STRIPE_SECRET_KEY'],
46
- # publishable_key: ENV['STRIPE_PUBLISHABLE_KEY'],
47
- # server: Rails.env.production? ? 'production' : 'test',
48
- # test_mode: !Rails.env.production?
43
+ # 'SolidusStripe::PaymentMethod',
44
+ # 'solidus_stripe_env_credentials',
45
+ # api_key: ENV.fetch('SOLIDUS_STRIPE_API_KEY'),
46
+ # publishable_key: ENV.fetch('SOLIDUS_STRIPE_PUBLISHABLE_KEY'),
47
+ # test_mode: ENV.fetch('SOLIDUS_STRIPE_API_KEY').start_with?('sk_test_'),
48
+ # webhook_endpoint_signing_secret: ENV.fetch('SOLIDUS_STRIPE_WEBHOOK_SIGNING_SECRET')
49
49
  # )
50
50
  end
51
51
 
@@ -57,9 +57,12 @@ Spree::Backend::Config.configure do |config|
57
57
  # a new menu item:
58
58
  #
59
59
  # config.menu_items << config.class::MenuItem.new(
60
- # [:section],
61
- # 'icon-name',
62
- # url: 'https://solidus.io/'
60
+ # label: :my_reports,
61
+ # icon: 'file-text-o', # see https://fontawesome.com/v4/icons/
62
+ # url: :my_admin_reports_path,
63
+ # condition: -> { can?(:admin, MyReports) },
64
+ # partial: 'spree/admin/shared/my_reports_sub_menu',
65
+ # match_path: '/reports',
63
66
  # )
64
67
 
65
68
  # Custom frontend product path
@@ -110,7 +110,7 @@ module Solidus
110
110
  end
111
111
 
112
112
  def changes_template_for(klass, from, to)
113
- changes = Spree::Preferences::PreferenceDifferentiator.new(klass).call(from: from, to: to)
113
+ changes = Spree::Preferences::PreferenceDifferentiator.new(klass).call(from:, to:)
114
114
  return '# No changes' if changes.empty?
115
115
 
116
116
  [
@@ -61,7 +61,7 @@ module Spree
61
61
  template "rails/application.rb.tt", "#{dummy_path}/config/application.rb", force: true
62
62
  template "rails/routes.rb", "#{dummy_path}/config/routes.rb", force: true
63
63
  template "rails/test.rb", "#{dummy_path}/config/environments/test.rb", force: true
64
- template "rails/script/rails", "#{dummy_path}/spec/dummy/script/rails", force: true
64
+ template "rails/manifest.js", "#{dummy_path}/app/assets/config/manifest.js", force: true
65
65
  end
66
66
 
67
67
  def test_dummy_inject_extension_requirements
@@ -2,7 +2,7 @@ require File.expand_path('../boot', __FILE__)
2
2
 
3
3
  require 'rails/all'
4
4
 
5
- Bundler.require(*Rails.groups(assets: %w(development test)))
5
+ Bundler.require(*Rails.groups)
6
6
 
7
7
  require '<%= lib_name %>'
8
8
 
@@ -1,113 +1,61 @@
1
- <% db = case ENV['DB']
2
- when 'mysql'
3
- 'mysql'
4
- when 'postgres', 'postgresql'
5
- 'postgres'
6
- when /sqlite3?/, '', nil
7
- 'sqlite'
8
- else
9
- raise "Invalid DB specified: #{ENV['DB']}"
10
- end %>
11
- <% db_host = case db
12
- when 'mysql'
13
- ENV['DB_MYSQL_HOST'] || ENV['DB_HOST']
14
- when 'postgres'
15
- ENV['DB_POSTGRES_HOST'] || ENV['DB_HOST']
16
- else
17
- ENV['DB_HOST']
18
- end %>
19
- <% db_username = ENV['DB_USERNAME'] %>
20
- <% db_password = ENV['DB_PASSWORD'] %>
1
+ <%
2
+ adapter =
3
+ case ENV['DB']
4
+ when 'mysql2', 'mysql' then 'mysql2'
5
+ when 'postgresql', 'postgres' then 'postgresql'
6
+ when 'sqlite3', 'sqlite', '', nil then 'sqlite3'
7
+ else raise "Invalid DB specified " + ENV['DB'].inspect
8
+ end
21
9
 
22
- <% case db
23
- when 'mysql' %>
10
+ db_host =
11
+ case adapter
12
+ when 'mysql2' then ENV['DB_MYSQL_HOST'] || ENV['DB_HOST']
13
+ when 'postgres' then ENV['DB_POSTGRES_HOST'] || ENV['DB_HOST']
14
+ else ENV['DB_HOST']
15
+ end
16
+
17
+ db_username = ENV['DB_USERNAME']
18
+ db_password = ENV['DB_PASSWORD'] %>
19
+
20
+ default: &default
21
+ adapter: <%= adapter %>
22
+ <% unless db_username.blank? %>username: <%= db_username %><% end %>
23
+ <% unless db_password.blank? %>password: <%= db_password %><% end %>
24
+ <% unless db_host.blank? %>host: <%= db_host %><% end %>
25
+ <% if adapter == 'mysql2' %>encoding: utf8<% end %>
26
+ <% if adapter == 'postgresql' %>min_messages: warning<% end %>
27
+
28
+ <% if adapter == 'mysql2' %>
24
29
  development:
25
- adapter: mysql2
30
+ <<: *default
26
31
  database: <%= options[:lib_name] %>_solidus_development
27
- <% unless db_username.blank? %>
28
- username: <%= db_username %>
29
- <% end %>
30
- <% unless db_password.blank? %>
31
- password: <%= db_password %>
32
- <% end %>
33
- <% unless db_host.blank? %>
34
- host: <%= db_host %>
35
- <% end %>
36
- encoding: utf8
37
32
  test:
38
- adapter: mysql2
33
+ <<: *default
39
34
  database: <%= options[:lib_name] %>_solidus_test
40
- <% unless db_username.blank? %>
41
- username: <%= db_username %>
42
- <% end %>
43
- <% unless db_password.blank? %>
44
- password: <%= db_password %>
45
- <% end %>
46
- <% unless db_host.blank? %>
47
- host: <%= db_host %>
48
- <% end %>
49
- encoding: utf8
50
35
  production:
51
- adapter: mysql2
36
+ <<: *default
52
37
  database: <%= options[:lib_name] %>_solidus_production
53
- <% unless db_username.blank? %>
54
- username: <%= db_username %>
55
- <% end %>
56
- <% unless db_password.blank? %>
57
- password: <%= db_password %>
58
- <% end %>
59
- <% unless db_host.blank? %>
60
- host: <%= db_host %>
61
- <% end %>
62
- encoding: utf8
63
- <% when 'postgres', 'postgresql' %>
38
+
39
+ <% elsif adapter == 'postgresql' %>
64
40
  development:
65
- adapter: postgresql
41
+ <<: *default
66
42
  database: <%= options[:lib_name] %>_solidus_development
67
- <% unless db_username.blank? %>
68
- username: <%= db_username %>
69
- <% end %>
70
- <% unless db_password.blank? %>
71
- password: <%= db_password %>
72
- <% end %>
73
- <% unless db_host.blank? %>
74
- host: <%= db_host %>
75
- <% end %>
76
- min_messages: warning
77
43
  test:
78
- adapter: postgresql
44
+ <<: *default
79
45
  database: <%= options[:lib_name] %>_solidus_test
80
- <% unless db_username.blank? %>
81
- username: <%= db_username %>
82
- <% end %>
83
- <% unless db_password.blank? %>
84
- password: <%= db_password %>
85
- <% end %>
86
- <% unless db_host.blank? %>
87
- host: <%= db_host %>
88
- <% end %>
89
- min_messages: warning
90
46
  production:
91
- adapter: postgresql
47
+ <<: *default
92
48
  database: <%= options[:lib_name] %>_solidus_production
93
- <% unless db_username.blank? %>
94
- username: <%= db_username %>
95
- <% end %>
96
- <% unless db_password.blank? %>
97
- password: <%= db_password %>
98
- <% end %>
99
- <% unless db_host.blank? %>
100
- host: <%= db_host %>
101
- <% end %>
102
- min_messages: warning
103
- <% when 'sqlite', '', nil %>
49
+
50
+ <% elsif adapter == 'sqlite3' %>
104
51
  development:
105
- adapter: sqlite3
52
+ <<: *default
106
53
  database: db/solidus_development.sqlite3
107
54
  test:
108
- adapter: sqlite3
55
+ <<: *default
109
56
  database: db/solidus_test.sqlite3
110
57
  production:
111
- adapter: sqlite3
58
+ <<: *default
112
59
  database: db/solidus_production.sqlite3
60
+
113
61
  <% end %>