spree_core 5.4.3 → 5.5.0.rc1

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 (231) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/base_helper.rb +0 -82
  3. data/app/helpers/spree/currency_helper.rb +0 -12
  4. data/app/helpers/spree/products_helper.rb +0 -8
  5. data/app/jobs/spree/base_job.rb +18 -0
  6. data/app/jobs/spree/events/subscriber_job.rb +2 -1
  7. data/app/jobs/spree/exports/generate_job.rb +11 -0
  8. data/app/jobs/spree/images/save_from_url_job.rb +23 -8
  9. data/app/jobs/spree/imports/assign_tags_job.rb +11 -0
  10. data/app/jobs/spree/imports/base_job.rb +15 -0
  11. data/app/jobs/spree/imports/create_categories_job.rb +37 -0
  12. data/app/jobs/spree/imports/create_rows_job.rb +1 -3
  13. data/app/jobs/spree/imports/process_group_job.rb +8 -6
  14. data/app/jobs/spree/imports/process_rows_job.rb +1 -3
  15. data/app/jobs/spree/media/migrate_product_assets_job.rb +83 -0
  16. data/app/jobs/spree/products/refresh_metrics_job.rb +15 -4
  17. data/app/jobs/spree/reports/generate_job.rb +11 -0
  18. data/app/jobs/spree/search_provider/index_job.rb +5 -1
  19. data/app/jobs/spree/search_provider/remove_job.rb +4 -0
  20. data/app/jobs/spree/stock_reservations/expire_job.rb +11 -0
  21. data/app/models/concerns/spree/calculated_adjustments.rb +34 -1
  22. data/app/models/concerns/spree/display_on.rb +31 -0
  23. data/app/models/concerns/spree/metafields.rb +167 -5
  24. data/app/models/concerns/spree/preference_schema.rb +191 -0
  25. data/app/models/concerns/spree/prefixed_id.rb +94 -11
  26. data/app/models/concerns/spree/product_scopes.rb +36 -17
  27. data/app/models/concerns/spree/ransackable_attributes.rb +5 -1
  28. data/app/models/concerns/spree/search_indexable.rb +8 -7
  29. data/app/models/concerns/spree/searchable.rb +11 -2
  30. data/app/models/concerns/spree/stores/channels.rb +20 -0
  31. data/app/models/concerns/spree/stores/markets.rb +21 -5
  32. data/app/models/concerns/spree/typed_associations.rb +120 -0
  33. data/app/models/concerns/spree/user_methods.rb +71 -12
  34. data/app/models/spree/ability.rb +4 -117
  35. data/app/models/spree/api_key.rb +53 -0
  36. data/app/models/spree/asset.rb +28 -5
  37. data/app/models/spree/authentication/strategy_registry.rb +72 -0
  38. data/app/models/spree/base.rb +18 -1
  39. data/app/models/spree/channel.rb +159 -0
  40. data/app/models/spree/country.rb +2 -0
  41. data/app/models/spree/current.rb +5 -1
  42. data/app/models/spree/custom_field.rb +9 -0
  43. data/app/models/spree/custom_field_definition.rb +7 -0
  44. data/app/models/spree/customer_group.rb +8 -2
  45. data/app/models/spree/export.rb +30 -3
  46. data/app/models/spree/gateway.rb +25 -0
  47. data/app/models/spree/gift_card.rb +1 -1
  48. data/app/models/spree/gift_card_batch.rb +4 -1
  49. data/app/models/spree/import.rb +5 -0
  50. data/app/models/spree/import_row.rb +12 -0
  51. data/app/models/spree/line_item.rb +6 -1
  52. data/app/models/spree/market.rb +32 -1
  53. data/app/models/spree/metafield.rb +38 -0
  54. data/app/models/spree/metafield_definition.rb +29 -6
  55. data/app/models/spree/metafields/json.rb +10 -0
  56. data/app/models/spree/newsletter_subscriber.rb +19 -3
  57. data/app/models/spree/option_type.rb +48 -7
  58. data/app/models/spree/order/checkout.rb +3 -3
  59. data/app/models/spree/order.rb +102 -6
  60. data/app/models/spree/order_approval.rb +19 -0
  61. data/app/models/spree/order_cancellation.rb +19 -0
  62. data/app/models/spree/order_routing/has_strategy_preference.rb +28 -0
  63. data/app/models/spree/order_routing/rules/default_location.rb +16 -0
  64. data/app/models/spree/order_routing/rules/minimize_splits.rb +45 -0
  65. data/app/models/spree/order_routing/rules/preferred_location.rb +22 -0
  66. data/app/models/spree/order_routing/strategy/base.rb +47 -0
  67. data/app/models/spree/order_routing/strategy/legacy.rb +33 -0
  68. data/app/models/spree/order_routing/strategy/reducer.rb +68 -0
  69. data/app/models/spree/order_routing/strategy/rules.rb +81 -0
  70. data/app/models/spree/order_routing_rule.rb +75 -0
  71. data/app/models/spree/permission_sets/configuration_management.rb +16 -0
  72. data/app/models/spree/permission_sets/product_display.rb +2 -0
  73. data/app/models/spree/permission_sets/product_management.rb +2 -0
  74. data/app/models/spree/price.rb +14 -1
  75. data/app/models/spree/price_list.rb +129 -17
  76. data/app/models/spree/price_rule.rb +11 -1
  77. data/app/models/spree/price_rules/customer_group_rule.rb +15 -1
  78. data/app/models/spree/price_rules/market_rule.rb +16 -1
  79. data/app/models/spree/price_rules/user_rule.rb +21 -2
  80. data/app/models/spree/product/channels.rb +149 -0
  81. data/app/models/spree/product/legacy_multi_store_support.rb +40 -0
  82. data/app/models/spree/product/slugs.rb +1 -1
  83. data/app/models/spree/product.rb +172 -31
  84. data/app/models/spree/product_publication.rb +43 -0
  85. data/app/models/spree/promotion/actions/create_adjustment.rb +4 -0
  86. data/app/models/spree/promotion/actions/create_item_adjustments.rb +4 -0
  87. data/app/models/spree/promotion/actions/create_line_items.rb +32 -14
  88. data/app/models/spree/promotion/rules/country.rb +40 -18
  89. data/app/models/spree/promotion/rules/customer_group.rb +10 -1
  90. data/app/models/spree/promotion/rules/product.rb +4 -0
  91. data/app/models/spree/promotion/rules/taxon.rb +24 -1
  92. data/app/models/spree/promotion/rules/user.rb +21 -0
  93. data/app/models/spree/promotion/rules/user_logged_in.rb +6 -0
  94. data/app/models/spree/promotion.rb +22 -1
  95. data/app/models/spree/promotion_action.rb +17 -11
  96. data/app/models/spree/promotion_rule.rb +17 -18
  97. data/app/models/spree/search_provider/meilisearch.rb +12 -2
  98. data/app/models/spree/stock/availability_validator.rb +1 -1
  99. data/app/models/spree/stock/quantifier.rb +89 -9
  100. data/app/models/spree/stock_item.rb +36 -0
  101. data/app/models/spree/stock_location.rb +52 -0
  102. data/app/models/spree/stock_reservation.rb +38 -0
  103. data/app/models/spree/stock_reservations/insufficient_stock_error.rb +12 -0
  104. data/app/models/spree/store.rb +18 -72
  105. data/app/models/spree/store_credit.rb +0 -8
  106. data/app/models/spree/store_product.rb +11 -23
  107. data/app/models/spree/taxon.rb +0 -5
  108. data/app/models/spree/user_identity.rb +1 -2
  109. data/app/models/spree/variant.rb +132 -18
  110. data/app/models/spree/variant_media.rb +46 -0
  111. data/app/models/spree/webhook_delivery.rb +1 -1
  112. data/app/models/spree/webhook_endpoint.rb +24 -0
  113. data/app/models/spree/wished_item.rb +0 -13
  114. data/app/presenters/spree/csv/product_variant_presenter.rb +23 -3
  115. data/app/presenters/spree/search_provider/product_presenter.rb +11 -4
  116. data/app/presenters/spree/variant_presenter.rb +4 -3
  117. data/app/services/spree/addresses/update.rb +6 -8
  118. data/app/services/spree/cart/add_item.rb +10 -0
  119. data/app/services/spree/cart/empty.rb +2 -0
  120. data/app/services/spree/cart/remove_line_item.rb +10 -0
  121. data/app/services/spree/cart/remove_out_of_stock_items.rb +1 -1
  122. data/app/services/spree/cart/set_quantity.rb +10 -0
  123. data/app/services/spree/carts/complete.rb +1 -0
  124. data/app/services/spree/carts/create.rb +1 -0
  125. data/app/services/spree/carts/update.rb +18 -2
  126. data/app/services/spree/carts/upsert_items.rb +6 -6
  127. data/app/services/spree/imports/row_processors/customer.rb +4 -1
  128. data/app/services/spree/imports/row_processors/product_variant.rb +95 -57
  129. data/app/services/spree/newsletter/link_user.rb +53 -0
  130. data/app/services/spree/newsletter/subscribe.rb +31 -9
  131. data/app/services/spree/orders/approve.rb +27 -6
  132. data/app/services/spree/orders/build_shipments.rb +29 -0
  133. data/app/services/spree/orders/cancel.rb +34 -3
  134. data/app/services/spree/orders/complete.rb +53 -0
  135. data/app/services/spree/orders/create.rb +156 -0
  136. data/app/services/spree/orders/update.rb +51 -0
  137. data/app/services/spree/orders/upsert_items.rb +70 -0
  138. data/app/services/spree/prices/bulk_upsert.rb +201 -0
  139. data/app/services/spree/products/duplicator.rb +1 -1
  140. data/app/services/spree/products/prepare_nested_attributes.rb +2 -30
  141. data/app/services/spree/sample_data/loader.rb +30 -0
  142. data/app/services/spree/stock_reservations/extend.rb +19 -0
  143. data/app/services/spree/stock_reservations/release.rb +12 -0
  144. data/app/services/spree/stock_reservations/reserve.rb +103 -0
  145. data/app/services/spree/taxons/remove_products.rb +7 -1
  146. data/app/subscribers/spree/product_metrics_subscriber.rb +3 -7
  147. data/app/views/spree/invitation_mailer/invitation_email.html.erb +4 -0
  148. data/config/locales/en.yml +27 -10
  149. data/config/routes.rb +9 -0
  150. data/db/migrate/20260429000001_create_spree_order_cancellations.rb +25 -0
  151. data/db/migrate/20260429000002_create_spree_order_approvals.rb +22 -0
  152. data/db/migrate/20260429000003_add_status_to_spree_orders.rb +6 -0
  153. data/db/migrate/20260429000004_add_scopes_to_spree_api_keys.rb +11 -0
  154. data/db/migrate/20260501000001_create_spree_stock_reservations.rb +19 -0
  155. data/db/migrate/20260507162651_create_spree_variant_media.rb +23 -0
  156. data/db/migrate/20260508175303_add_pickup_to_spree_stock_locations.rb +12 -0
  157. data/db/migrate/20260508204040_create_spree_channels.rb +18 -0
  158. data/db/migrate/20260508204041_create_spree_order_routing_rules.rb +18 -0
  159. data/db/migrate/20260508204042_add_preferred_stock_location_to_spree_orders.rb +5 -0
  160. data/db/migrate/20260508204043_add_channel_id_to_spree_orders.rb +10 -0
  161. data/db/migrate/20260511000001_backfill_status_on_spree_orders.rb +57 -0
  162. data/db/migrate/20260515000001_add_store_id_to_spree_newsletter_subscribers.rb +25 -0
  163. data/db/migrate/20260529000001_add_unique_index_to_spree_price_rules.rb +41 -0
  164. data/db/migrate/20260529000002_add_unique_index_to_spree_promotion_rules.rb +37 -0
  165. data/db/migrate/20260601000001_create_spree_product_publications.rb +14 -0
  166. data/db/migrate/20260601000002_add_store_id_to_spree_products.rb +16 -0
  167. data/db/migrate/20260602000001_add_default_to_spree_channels.rb +14 -0
  168. data/db/sample_data/channels.rb +12 -0
  169. data/db/sample_data/orders.rb +1 -1
  170. data/db/sample_data/products.csv +212 -212
  171. data/lib/generators/spree/api_resource/api_resource_generator.rb +353 -0
  172. data/lib/generators/spree/api_resource/templates/admin_controller.rb.tt +23 -0
  173. data/lib/generators/spree/api_resource/templates/admin_controller_spec.rb.tt +59 -0
  174. data/lib/generators/spree/api_resource/templates/admin_serializer.rb.tt +11 -0
  175. data/lib/generators/spree/api_resource/templates/factory.rb.tt +26 -0
  176. data/lib/generators/spree/api_resource/templates/store_aliased_serializer.rb.tt +12 -0
  177. data/lib/generators/spree/api_resource/templates/store_controller.rb.tt +31 -0
  178. data/lib/generators/spree/api_resource/templates/store_controller_spec.rb.tt +61 -0
  179. data/lib/generators/spree/api_resource/templates/store_serializer.rb.tt +14 -0
  180. data/lib/generators/spree/controller_decorator/controller_decorator_generator.rb +66 -0
  181. data/lib/generators/spree/controller_decorator/templates/controller_decorator.rb.tt +25 -0
  182. data/lib/generators/spree/model/model_generator.rb +73 -7
  183. data/lib/generators/spree/model/templates/create_table_migration.rb.tt +40 -0
  184. data/lib/generators/spree/model/templates/model.rb.tt +28 -2
  185. data/lib/spree/core/configuration.rb +7 -0
  186. data/lib/spree/core/controller_helpers/auth.rb +0 -12
  187. data/lib/spree/core/controller_helpers/currency.rb +0 -17
  188. data/lib/spree/core/controller_helpers/order.rb +0 -19
  189. data/lib/spree/core/dependencies.rb +5 -2
  190. data/lib/spree/core/engine.rb +54 -7
  191. data/lib/spree/core/permission_configuration.rb +15 -0
  192. data/lib/spree/core/preferences/masking.rb +47 -0
  193. data/lib/spree/core/preferences/preferable_class_methods.rb +7 -1
  194. data/lib/spree/core/version.rb +1 -1
  195. data/lib/spree/core.rb +56 -5
  196. data/lib/spree/permitted_attributes.rb +9 -7
  197. data/lib/spree/testing_support/factories/address_factory.rb +16 -9
  198. data/lib/spree/testing_support/factories/api_key_factory.rb +1 -0
  199. data/lib/spree/testing_support/factories/channel_factory.rb +8 -0
  200. data/lib/spree/testing_support/factories/line_item_factory.rb +2 -8
  201. data/lib/spree/testing_support/factories/newsletter_subscriber_factory.rb +2 -0
  202. data/lib/spree/testing_support/factories/product_factory.rb +16 -7
  203. data/lib/spree/testing_support/factories/product_publication_factory.rb +6 -0
  204. data/lib/spree/testing_support/factories/refresh_token_factory.rb +15 -0
  205. data/lib/spree/testing_support/factories/stock_location_factory.rb +2 -2
  206. data/lib/spree/testing_support/factories/stock_reservation_factory.rb +31 -0
  207. data/lib/spree/testing_support/factories/variant_factory.rb +3 -3
  208. data/lib/spree/testing_support/order_walkthrough.rb +1 -1
  209. data/lib/spree/testing_support/store.rb +10 -0
  210. data/lib/spree/upgrades/5_4_to_5_5/manifest.yml +53 -0
  211. data/lib/tasks/channels.rake +94 -0
  212. data/lib/tasks/core.rake +1 -0
  213. data/lib/tasks/media.rake +27 -0
  214. data/lib/tasks/products.rake +4 -6
  215. data/lib/tasks/publications.rake +60 -0
  216. data/lib/tasks/upgrade.rake +211 -0
  217. metadata +83 -18
  218. data/app/finders/spree/variants/visible_finder.rb +0 -23
  219. data/app/paginators/spree/shared/paginate.rb +0 -30
  220. data/app/presenters/spree/filters/price_presenter.rb +0 -23
  221. data/app/presenters/spree/filters/price_range_presenter.rb +0 -30
  222. data/app/presenters/spree/filters/quantified_price_range_presenter.rb +0 -45
  223. data/app/presenters/spree/product_summary_presenter.rb +0 -27
  224. data/app/presenters/spree/variants/options_presenter.rb +0 -82
  225. data/app/services/spree/classifications/reposition.rb +0 -23
  226. data/app/sorters/spree/orders/sort.rb +0 -10
  227. data/lib/spree/core/controller_helpers/common.rb +0 -14
  228. data/lib/spree/core/token_generator.rb +0 -23
  229. data/lib/spree/database_type_utilities.rb +0 -22
  230. data/lib/spree/testing_support/bar_ability.rb +0 -14
  231. data/lib/spree/testing_support/factories/store_product_factory.rb +0 -6
@@ -1,30 +0,0 @@
1
- module Spree
2
- module Filters
3
- class PriceRangePresenter
4
- def self.from_param(param, currency:)
5
- prices = param.split('-')
6
-
7
- new(
8
- min_price: PricePresenter.new(amount: prices.first, currency: currency),
9
- max_price: PricePresenter.new(amount: prices.last, currency: currency)
10
- )
11
- end
12
-
13
- def initialize(min_price:, max_price:)
14
- Spree::Deprecation.warn('Spree::Filters::PriceRangePresenter is deprecated and will be removed in Spree 5.5.')
15
- @min_price = min_price
16
- @max_price = max_price
17
- end
18
-
19
- attr_reader :min_price, :max_price
20
-
21
- def to_param
22
- "#{min_price.to_i}-#{max_price.to_i}"
23
- end
24
-
25
- def to_s
26
- "#{min_price} - #{max_price}"
27
- end
28
- end
29
- end
30
- end
@@ -1,45 +0,0 @@
1
- module Spree
2
- module Filters
3
- class QuantifiedPriceRangePresenter
4
- ALLOWED_QUANTIFIERS = [
5
- :less_than,
6
- :more_than
7
- ].freeze
8
-
9
- def initialize(price:, quantifier:)
10
- Spree::Deprecation.warn('Spree::Filters::QuantifiedPriceRangePresenter is deprecated and will be removed in Spree 5.5.')
11
- if ALLOWED_QUANTIFIERS.exclude?(quantifier.to_sym)
12
- raise ArgumentError, "quantifier must be one of: #{ALLOWED_QUANTIFIERS.join(', ')}"
13
- end
14
-
15
- @price = price
16
- @quantifier = quantifier.to_sym
17
- end
18
-
19
- def to_param
20
- case quantifier
21
- when :less_than
22
- less_than_param
23
- when :more_than
24
- more_than_param
25
- end
26
- end
27
-
28
- def to_s
29
- "#{I18n.t("activerecord.attributes.spree/product.#{quantifier}")} #{price}"
30
- end
31
-
32
- private
33
-
34
- attr_reader :price, :quantifier
35
-
36
- def less_than_param
37
- "0-#{price.to_i}"
38
- end
39
-
40
- def more_than_param
41
- "#{price.to_i}-Infinity"
42
- end
43
- end
44
- end
45
- end
@@ -1,27 +0,0 @@
1
- module Spree
2
- class ProductSummaryPresenter
3
- include Rails.application.routes.url_helpers
4
-
5
- def initialize(product)
6
- Spree::Deprecation.warn('Spree::ProductSummaryPresenter is deprecated and will be removed in Spree 5.5.')
7
- @product = product
8
- end
9
-
10
- def call
11
- {
12
- name: @product.name,
13
- images: images
14
- }
15
- end
16
-
17
- private
18
-
19
- def images
20
- @product.images.map do |image|
21
- {
22
- url_product: rails_representation_url(image.url(:product), only_path: true)
23
- }
24
- end
25
- end
26
- end
27
- end
@@ -1,82 +0,0 @@
1
- module Spree
2
- module Variants
3
- class OptionsPresenter
4
- WORDS_CONNECTOR = ', '.freeze
5
-
6
- attr_reader :variant
7
-
8
- delegate :option_values, to: :variant
9
-
10
- def initialize(variant)
11
- Spree::Deprecation.warn('Spree::Variants::OptionsPresenter is deprecated and will be removed in Spree 5.5. Please use Spree::Variant#options_text instead.')
12
- @variant = variant
13
- end
14
-
15
- def to_sentence
16
- options = option_values
17
- options = sort_options(options)
18
- options = present_options(options)
19
-
20
- join_options(options)
21
- end
22
-
23
- def to_hash
24
- options = option_values
25
- options = sort_options(options)
26
- options = present_options_as_hash(options)
27
-
28
- join_hash_options(options)
29
- end
30
-
31
- private
32
-
33
- def sort_options(options)
34
- if options.first&.association(:option_type)&.loaded?
35
- options.sort_by { |o| o.option_type.position }
36
- else
37
- options.includes(:option_type).sort_by { |o| o.option_type.position }
38
- end
39
- end
40
-
41
- def present_options(options)
42
- options.map do |ov|
43
- method = "present_#{ov.option_type.name}_option"
44
-
45
- respond_to?(method, true) ? send(method, ov) : present_option(ov)
46
- end
47
- end
48
-
49
- def present_color_option(option)
50
- "#{option.option_type.presentation}: #{option.presentation}"
51
- end
52
-
53
- def present_option(option)
54
- "#{option.option_type.presentation}: #{option.presentation}"
55
- end
56
-
57
- def join_options(options)
58
- options.to_sentence(words_connector: WORDS_CONNECTOR, two_words_connector: WORDS_CONNECTOR)
59
- end
60
-
61
- def present_options_as_hash(options)
62
- options.map do |ov|
63
- method = "present_#{ov.option_type.name}_option_as_hash"
64
-
65
- respond_to?(method, true) ? send(method, ov) : present_option_as_hash(ov)
66
- end
67
- end
68
-
69
- def present_option_as_hash(option)
70
- {}.tap do |hash|
71
- hash.store(option.option_type.presentation.downcase, option.presentation)
72
- end
73
- end
74
-
75
- def join_hash_options(options)
76
- return {} if options.empty?
77
-
78
- options.inject(:merge).symbolize_keys
79
- end
80
- end
81
- end
82
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Classifications
3
- # @deprecated This service is deprecated and will be removed in Spree 5.5.
4
- class Reposition
5
- prepend Spree::ServiceModule::Base
6
-
7
- def call(classification:, position:)
8
- Spree::Deprecation.warn(
9
- "#{self.class.name} is deprecated and will be removed in Spree 5.5.",
10
- caller_locations(2)
11
- )
12
- if position.is_a?(String) && !position.match(/^\d+$/)
13
- return failure(nil, I18n.t('errors.messages.not_a_number'))
14
- end
15
-
16
- # Because position we get back is 0-indexed.
17
- # acts_as_list is 1-indexed.
18
- classification.insert_at(position.to_i + 1)
19
- success(classification)
20
- end
21
- end
22
- end
23
- end
@@ -1,10 +0,0 @@
1
- module Spree
2
- module Orders
3
- class Sort < ::Spree::BaseSorter
4
- def initialize(*args)
5
- Spree::Deprecation.warn('Spree::Orders::Sort is deprecated and will be removed in Spree 5.5.')
6
- super
7
- end
8
- end
9
- end
10
- end
@@ -1,14 +0,0 @@
1
- module Spree
2
- module Core
3
- module ControllerHelpers
4
- # @deprecated This module is deprecated and will be removed in Spree 5.5.
5
- module Common
6
- def self.included(base)
7
- Spree::Deprecation.warn(
8
- 'Spree::Core::ControllerHelpers::Common is deprecated and will be removed in Spree 5.5.'
9
- )
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,23 +0,0 @@
1
- module Spree
2
- module Core
3
- module TokenGenerator
4
- def generate_token(model_class = Spree::Order)
5
- Spree::Deprecation.warn('generate_token is deprecated and will be removed in Spree 5.5. Please use Rails secure token generator: https://api.rubyonrails.org/classes/ActiveRecord/SecureToken/ClassMethods.html')
6
- loop do
7
- token = "#{random_token}#{unique_ending}"
8
- break token unless model_class.exists?(token: token)
9
- end
10
- end
11
-
12
- private
13
-
14
- def random_token
15
- SecureRandom.urlsafe_base64(nil, false)
16
- end
17
-
18
- def unique_ending
19
- (Time.now.to_f * 1000).to_i
20
- end
21
- end
22
- end
23
- end
@@ -1,22 +0,0 @@
1
- module Spree
2
- # @deprecated Use the integer constant directly instead, eg. `2_147_483_647` for 4-byte signed integer max.
3
- # This module will be removed in Spree 5.5.
4
- module DatabaseTypeUtilities
5
- # Maximum value for a 4-byte signed integer (default database integer type)
6
- INTEGER_MAX = (2**31) - 1
7
-
8
- def self.maximum_value_for(data_type)
9
- Spree::Deprecation.warn(
10
- 'Spree::DatabaseTypeUtilities.maximum_value_for is deprecated and will be removed in Spree 5.5. ' \
11
- 'Use the integer constant directly instead, eg. 2_147_483_647 for 4-byte signed integer max.'
12
- )
13
-
14
- case data_type
15
- when :integer
16
- INTEGER_MAX
17
- else
18
- raise ArgumentError, 'Currently only :integer argument is acceptable'
19
- end
20
- end
21
- end
22
- end
@@ -1,14 +0,0 @@
1
- # Fake ability for testing administration
2
- class BarAbility
3
- include CanCan::Ability
4
-
5
- def initialize(user)
6
- user ||= Spree::User.new
7
- if user.has_spree_role? 'bar'
8
- # allow dispatch to :admin, :index, and :show on Spree::Order
9
- can [:admin, :index, :show], Spree::Order
10
- # allow dispatch to :index, :show, :create and :update shipments on the admin
11
- can [:admin, :manage], Spree::Shipment
12
- end
13
- end
14
- end
@@ -1,6 +0,0 @@
1
- FactoryBot.define do
2
- factory :store_product, class: Spree::StoreProduct do
3
- store
4
- product
5
- end
6
- end