spree_core 4.6.2 → 4.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/finders/spree/countries/find.rb +1 -1
  3. data/app/finders/spree/products/find.rb +1 -1
  4. data/app/finders/spree/taxons/find.rb +3 -9
  5. data/app/helpers/spree/base_helper.rb +1 -5
  6. data/app/helpers/spree/products_helper.rb +3 -3
  7. data/app/models/concerns/spree/metadata.rb +7 -2
  8. data/app/models/concerns/spree/user_roles.rb +3 -3
  9. data/app/models/spree/address.rb +5 -3
  10. data/app/models/spree/base.rb +5 -1
  11. data/app/models/spree/cms/sections/image_gallery.rb +1 -7
  12. data/app/models/spree/cms/sections/side_by_side_images.rb +1 -7
  13. data/app/models/spree/country.rb +2 -2
  14. data/app/models/spree/digital_link.rb +5 -1
  15. data/app/models/spree/order.rb +4 -4
  16. data/app/models/spree/payment.rb +4 -12
  17. data/app/models/spree/preference.rb +5 -1
  18. data/app/models/spree/product.rb +3 -11
  19. data/app/models/spree/product_property.rb +1 -1
  20. data/app/models/spree/return_item.rb +5 -1
  21. data/app/models/spree/stock/splitter/weight.rb +1 -1
  22. data/app/models/spree/store.rb +2 -2
  23. data/app/models/spree/wishlist.rb +5 -1
  24. data/app/models/spree/zone.rb +1 -1
  25. data/app/services/spree/seeds/countries.rb +12 -27
  26. data/app/services/spree/seeds/states.rb +8 -17
  27. data/app/services/spree/stock_locations/stock_items/create.rb +12 -18
  28. data/app/validators/db_maximum_length_validator.rb +2 -6
  29. data/config/initializers/rails61_fixes.rb +1 -3
  30. data/config/locales/en.yml +6 -0
  31. data/lib/spree/core/configuration.rb +1 -1
  32. data/lib/spree/core/controller_helpers/auth.rb +1 -1
  33. data/lib/spree/core/controller_helpers/common.rb +5 -5
  34. data/lib/spree/core/engine.rb +1 -0
  35. data/lib/spree/core/preferences/preferable_class_methods.rb +1 -1
  36. data/lib/spree/core/version.rb +1 -1
  37. data/lib/spree/testing_support/controller_requests.rb +10 -10
  38. data/spree_core.gemspec +3 -3
  39. metadata +55 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25515bda9382eb9a7fc0e07ac95fea0b0094fd7de31af286e0eed57d5feb205f
4
- data.tar.gz: f7aba240ca2172c68b41e7da1c0e4864fcadb1ec6a632c919cca59fa7e129076
3
+ metadata.gz: b694ef25dfdd98db89c6c36a42cc50de19b6dab09cc827c5273e57dc066f38d6
4
+ data.tar.gz: '09ecb007e8e2181ace749a1b6776c8fe62eafdb07f321238d5fd69670f209206'
5
5
  SHA512:
6
- metadata.gz: 2f829f28024c84e1b8b7dba2868fedeffc0f105b237ef3ad946ad64ec9a2c0f789c8f3ae367f42203a3d3c53be08b598df0a4cd3d58aa45479bf4e755091f27c
7
- data.tar.gz: afefb4b5952e8187f5dc605202fcc578c13bdd9d7f43d411c0763471c32ddb622aaf6f62c2160b1e835d1f974452d54812ebcabd3a072da0ff31af1a698ab3a8
6
+ metadata.gz: 3620378de0b17967f36b2d0a4c72e302aa25dae3f700aaf09e2d9b9cec73bf4b924a81a273beb9da245571c1c48128e5ad53c26539a7f8de04b0c38cdbb31d20
7
+ data.tar.gz: f902de746ff1dfbeef5f778f6cc204db4c47477fd76c8a0eeea60874fa45a188be8cf33ca1462240f636f57394cf790f71ce6dbdd2ac48bf756aa4e3379b059f
@@ -8,7 +8,7 @@ module Spree
8
8
  end
9
9
 
10
10
  def call
11
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
11
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
12
12
  Spree::Countries::Find.new.call is deprecated and will be removed in Spree 5.0.
13
13
  Please use Spree::Countries::Find.new.execute instead
14
14
  DEPRECATION
@@ -5,7 +5,7 @@ module Spree
5
5
  @scope = scope
6
6
 
7
7
  if current_currency.present?
8
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
8
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
9
9
  `current_currency` param is deprecated and will be removed in Spree 5.
10
10
  Please pass `:currency` in `params` hash instead.
11
11
  DEPRECATION
@@ -65,15 +65,9 @@ module Spree
65
65
  def by_parent_permalink(taxons)
66
66
  return taxons unless parent_permalink?
67
67
 
68
- if Rails::VERSION::STRING >= '6.1'
69
- taxons.joins(:parent).
70
- join_translation_table(Taxon, 'parents_spree_taxons').
71
- where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
72
- else
73
- taxons.joins("INNER JOIN #{Spree::Taxon.table_name} AS parent_taxon ON parent_taxon.id = #{Spree::Taxon.table_name}.parent_id").
74
- join_translation_table(Taxon, 'parent_taxon').
75
- where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
76
- end
68
+ taxons.joins(:parent).
69
+ join_translation_table(Taxon, 'parents_spree_taxons').
70
+ where(["#{Taxon.translation_table_alias}.permalink = ?", parent_permalink])
77
71
  end
78
72
 
79
73
  def by_taxonomy(taxons)
@@ -55,7 +55,7 @@ module Spree
55
55
  end
56
56
 
57
57
  def logo(image_path = nil, options = {})
58
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
58
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
59
59
  `BaseHelper#logo` is deprecated and will be removed in Spree 5.0.
60
60
  Please use `FrontendHelper#logo` instead
61
61
  DEPRECATION
@@ -174,10 +174,6 @@ module Spree
174
174
  Spree::Core::Engine.frontend_available?
175
175
  end
176
176
 
177
- def rails_5?
178
- Rails::VERSION::STRING < '6.0'
179
- end
180
-
181
177
  def spree_storefront_resource_url(resource, options = {})
182
178
  if defined?(locale_param) && locale_param.present?
183
179
  options.merge!(locale: locale_param)
@@ -53,7 +53,7 @@ module Spree
53
53
  end
54
54
 
55
55
  def cache_key_for_products(products = @products, additional_cache_key = nil)
56
- max_updated_at = (products.except(:group, :order).maximum(:updated_at) || Date.today).to_s(:number)
56
+ max_updated_at = (products.except(:group, :order).maximum(:updated_at) || Date.today).to_formatted_s(:number)
57
57
  products_cache_keys = "spree/products/#{products.map(&:id).join('-')}-#{params[:page]}-#{params[:sort_by]}-#{max_updated_at}-#{@taxon&.id}"
58
58
  (common_product_cache_keys + [products_cache_keys] + [additional_cache_key]).compact.join('/')
59
59
  end
@@ -76,7 +76,7 @@ module Spree
76
76
 
77
77
  # will return a human readable string
78
78
  def available_status(product)
79
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
79
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
80
80
  `Spree::ProductsHelper#available_status` method from spree/core is deprecated and will be removed.
81
81
  Please use `Spree::Admin::ProductsHelper#available_status` from spree_backend instead.
82
82
  DEPRECATION
@@ -140,7 +140,7 @@ module Spree
140
140
  end
141
141
 
142
142
  def related_products
143
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
143
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
144
144
  ProductsHelper#related_products is deprecated and will be removed in Spree 5.0.
145
145
  Please use ProductsHelper#relations from now on.
146
146
  DEPRECATION
@@ -5,8 +5,13 @@ module Spree
5
5
  included do
6
6
  attribute :public_metadata, default: {}
7
7
  attribute :private_metadata, default: {}
8
- serialize :public_metadata, HashSerializer
9
- serialize :private_metadata, HashSerializer
8
+ if Rails::VERSION::STRING >= '7.1.0'
9
+ serialize :public_metadata, coder: HashSerializer
10
+ serialize :private_metadata, coder: HashSerializer
11
+ else
12
+ serialize :public_metadata, HashSerializer
13
+ serialize :private_metadata, HashSerializer
14
+ end
10
15
  end
11
16
 
12
17
  # https://nandovieira.com/using-postgresql-and-jsonb-with-ruby-on-rails
@@ -14,19 +14,19 @@ module Spree
14
14
  end
15
15
 
16
16
  def self.admin
17
- ActiveSupport::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')
17
+ Spree::Deprecation.warn('`User#admin` is deprecated and will be removed in Spree 5. Please use `User#spree_admin`')
18
18
 
19
19
  spree_admin
20
20
  end
21
21
 
22
22
  def self.admin_created?
23
- ActiveSupport::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')
23
+ Spree::Deprecation.warn('`User#admin_created?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin_created?`')
24
24
 
25
25
  spree_admin_created?
26
26
  end
27
27
 
28
28
  def admin?
29
- ActiveSupport::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')
29
+ Spree::Deprecation.warn('`User#admin?` is deprecated and will be removed in Spree 5. Please use `User#spree_admin?`')
30
30
 
31
31
  spree_admin?
32
32
  end
@@ -10,7 +10,9 @@ module Spree
10
10
  include Spree::Security::Addresses
11
11
  end
12
12
 
13
- if Rails::VERSION::STRING >= '6.1'
13
+ if Rails::VERSION::STRING >= '7.1.0'
14
+ serialize :preferences, type: Hash, coder: YAML, default: {}
15
+ else
14
16
  serialize :preferences, Hash, default: {}
15
17
  end
16
18
 
@@ -67,7 +69,7 @@ module Spree
67
69
  self.whitelisted_ransackable_associations = %w[country state user]
68
70
 
69
71
  def self.build_default
70
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
72
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
71
73
  `Address#build_default` is deprecated and will be removed in Spree 5.0.
72
74
  Please use standard rails `Address.new(country: current_store.default_country)`
73
75
  DEPRECATION
@@ -75,7 +77,7 @@ module Spree
75
77
  end
76
78
 
77
79
  def self.default(user = nil, kind = 'bill')
78
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
80
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
79
81
  `Address#default` is deprecated and will be removed in Spree 5.0.
80
82
  DEPRECATION
81
83
  if user && user_address = user.public_send(:"#{kind}_address")
@@ -1,6 +1,10 @@
1
1
  class Spree::Base < ApplicationRecord
2
2
  include Spree::Preferences::Preferable
3
- serialize :preferences, Hash
3
+ if Rails::VERSION::STRING >= '7.1.0'
4
+ serialize :preferences, type: Hash, coder: YAML
5
+ else
6
+ serialize :preferences, Hash
7
+ end
4
8
 
5
9
  include Spree::RansackableAttributes
6
10
  include Spree::TranslatableResourceScopes
@@ -3,11 +3,7 @@ module Spree::Cms::Sections
3
3
  after_initialize :default_values
4
4
  validate :reset_multiple_link_attributes
5
5
 
6
- LINKED_RESOURCE_TYPE = if Rails::VERSION::STRING < '6.0'
7
- ['Spree::Taxon'].freeze
8
- else
9
- ['Spree::Taxon', 'Spree::Product'].freeze
10
- end
6
+ LINKED_RESOURCE_TYPE = ['Spree::Taxon', 'Spree::Product'].freeze
11
7
 
12
8
  LAYOUT_OPTIONS = ['Default', 'Reversed'].freeze
13
9
  LABEL_OPTIONS = ['Show', 'Hide'].freeze
@@ -71,8 +67,6 @@ module Spree::Cms::Sections
71
67
  private
72
68
 
73
69
  def reset_multiple_link_attributes
74
- return if Rails::VERSION::STRING < '6.0'
75
-
76
70
  if link_type_one_changed?
77
71
  return if link_type_one_was.nil?
78
72
 
@@ -3,11 +3,7 @@ module Spree::Cms::Sections
3
3
  after_initialize :default_values
4
4
  validate :reset_multiple_link_attributes
5
5
 
6
- LINKED_RESOURCE_TYPE = if Rails::VERSION::STRING < '6.0'
7
- ['Spree::Taxon'].freeze
8
- else
9
- ['Spree::Taxon', 'Spree::Product'].freeze
10
- end
6
+ LINKED_RESOURCE_TYPE = ['Spree::Taxon', 'Spree::Product'].freeze
11
7
 
12
8
  store :content, accessors: [:link_type_one, :link_one, :title_one, :subtitle_one,
13
9
  :link_type_two, :link_two, :title_two, :subtitle_two], coder: JSON
@@ -49,8 +45,6 @@ module Spree::Cms::Sections
49
45
  private
50
46
 
51
47
  def reset_multiple_link_attributes
52
- return if Rails::VERSION::STRING < '6.0'
53
-
54
48
  if link_type_one_changed?
55
49
  return if link_type_one_was.nil?
56
50
 
@@ -19,7 +19,7 @@ module Spree
19
19
  validates :name, :iso_name, :iso, :iso3, presence: true, uniqueness: { case_sensitive: false, scope: spree_base_uniqueness_scope }
20
20
 
21
21
  def self.default(store = nil)
22
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
22
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
23
23
  `Country#default` is deprecated and will be removed in Spree 5.0.
24
24
  Please use `current_store.default_country` instead
25
25
  DEPRECATION
@@ -49,7 +49,7 @@ module Spree
49
49
  private
50
50
 
51
51
  def ensure_not_default
52
- ActiveSupport::Deprecation.warn('Country#ensure_not_default is deprecated and will be removed in Spree v5')
52
+ Spree::Deprecation.warn('Country#ensure_not_default is deprecated and will be removed in Spree v5')
53
53
 
54
54
  if id.eql?(Spree::Config[:default_country_id])
55
55
  errors.add(:base, Spree.t(:default_country_cannot_be_deleted))
@@ -1,6 +1,10 @@
1
1
  module Spree
2
2
  class DigitalLink < Spree::Base
3
- has_secure_token
3
+ if Rails::VERSION::STRING >= '7.1.0'
4
+ has_secure_token on: :save
5
+ else
6
+ has_secure_token
7
+ end
4
8
 
5
9
  if defined?(Spree::Webhooks)
6
10
  include Spree::Webhooks::HasWebhooks
@@ -415,7 +415,7 @@ module Spree
415
415
 
416
416
  def available_payment_methods(store = nil)
417
417
  if store.present?
418
- ActiveSupport::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
418
+ Spree::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
419
419
  end
420
420
 
421
421
  @available_payment_methods ||= collect_payment_methods(store)
@@ -449,7 +449,7 @@ module Spree
449
449
  end
450
450
 
451
451
  def empty!
452
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
452
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
453
453
  `Order#empty!` is deprecated and will be removed in Spree 5.0.
454
454
  Please use `Spree::Cart::Empty.call(order: order)` instead.
455
455
  DEPRECATION
@@ -647,7 +647,7 @@ module Spree
647
647
  end
648
648
 
649
649
  def validate_payments_attributes(attributes)
650
- ActiveSupport::Deprecation.warn('`Order#validate_payments_attributes` is deprecated and will be removed in Spree 5')
650
+ Spree::Deprecation.warn('`Order#validate_payments_attributes` is deprecated and will be removed in Spree 5')
651
651
 
652
652
  # Ensure the payment methods specified are allowed for this user
653
653
  payment_method_ids = available_payment_methods.map(&:id).map(&:to_s)
@@ -745,7 +745,7 @@ module Spree
745
745
 
746
746
  def collect_payment_methods(store = nil)
747
747
  if store.present?
748
- ActiveSupport::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
748
+ Spree::Deprecation.warn('The `store` parameter is deprecated and will be removed in Spree 5. Order is already associated with Store')
749
749
  end
750
750
  store ||= self.store
751
751
 
@@ -222,18 +222,10 @@ module Spree
222
222
 
223
223
  def validate_source
224
224
  if source && !source.valid?
225
- if Rails::VERSION::STRING >= '6.1'
226
- source.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
227
- next if err[:field].blank? || err[:message].blank?
228
-
229
- add_source_error(err[:field], err[:message])
230
- end
231
- else
232
- source.errors.messages.each do |field, error|
233
- next if field.blank? || error.empty?
234
-
235
- add_source_error(field, error.first)
236
- end
225
+ source.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
226
+ next if err[:field].blank? || err[:message].blank?
227
+
228
+ add_source_error(err[:field], err[:message])
237
229
  end
238
230
  end
239
231
  !errors.present?
@@ -1,5 +1,9 @@
1
1
  class Spree::Preference < Spree::Base
2
- serialize :value
2
+ if Rails::VERSION::STRING >= '7.1.0'
3
+ serialize :value, coder: YAML
4
+ else
5
+ serialize :value
6
+ end
3
7
 
4
8
  validates :key, presence: true,
5
9
  uniqueness: { case_sensitive: false, allow_blank: true, scope: spree_base_uniqueness_scope }
@@ -507,18 +507,10 @@ module Spree
507
507
  # We call master.default_price here to ensure price is initialized.
508
508
  # Required to avoid Variant#check_price validation failing on create.
509
509
  unless master.default_price && master.valid?
510
- if Rails::VERSION::STRING >= '6.1'
511
- master.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
512
- next if err[:field].blank? || err[:message].blank?
510
+ master.errors.map { |error| { field: error.attribute, message: error&.message } }.each do |err|
511
+ next if err[:field].blank? || err[:message].blank?
513
512
 
514
- errors.add(err[:field], err[:message])
515
- end
516
- else
517
- master.errors.messages.each do |field, error|
518
- next if field.blank? || error.empty?
519
-
520
- errors.add(field, error.first)
521
- end
513
+ errors.add(err[:field], err[:message])
522
514
  end
523
515
  end
524
516
  end
@@ -33,7 +33,7 @@ module Spree
33
33
  delegate :name, :presentation, to: :property, prefix: true, allow_nil: true
34
34
 
35
35
  def property_name=(name)
36
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
36
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
37
37
  `ProductProperty#property_name=` is deprecated and will be removed in Spree 5.0.
38
38
  DEPRECATION
39
39
  if name.present?
@@ -62,7 +62,11 @@ module Spree
62
62
  scope :exchange_required, -> { eager_load(:exchange_inventory_units).where(spree_inventory_units: { original_return_item_id: nil }).distinct }
63
63
  scope :resellable, -> { where resellable: true }
64
64
 
65
- serialize :acceptance_status_errors
65
+ if Rails::VERSION::STRING >= '7.1.0'
66
+ serialize :acceptance_status_errors, coder: YAML
67
+ else
68
+ serialize :acceptance_status_errors
69
+ end
66
70
 
67
71
  delegate :eligible_for_return?, :requires_manual_intervention?, to: :validator
68
72
  delegate :variant, to: :inventory_unit
@@ -15,7 +15,7 @@ module Spree
15
15
  private
16
16
 
17
17
  def reduce(package)
18
- contents = split_package_contents_over_threshold(package).sort { |x, y| y.weight <=> x.weight }
18
+ contents = split_package_contents_over_threshold(package).sort_by(&:weight).reverse
19
19
  # Treat current package as one of the generated packages for convenience and add the heaviest item
20
20
  # This also prevents an additional package if no fit is possible
21
21
  package.contents.clear
@@ -112,7 +112,7 @@ module Spree
112
112
  alias_attribute :contact_email, :customer_support_email
113
113
 
114
114
  def self.current(url = nil)
115
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
115
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
116
116
  `Spree::Store.current` is deprecated and will be removed in Spree 5.0
117
117
  Please use `Spree::Stores::FindCurrent.new(url: "https://example.com").execute` instead
118
118
  DEPRECATION
@@ -194,7 +194,7 @@ module Spree
194
194
  end
195
195
 
196
196
  def checkout_zone_or_default
197
- ActiveSupport::Deprecation.warn('Store#checkout_zone_or_default is deprecated and will be removed in Spree 5')
197
+ Spree::Deprecation.warn('Store#checkout_zone_or_default is deprecated and will be removed in Spree 5')
198
198
 
199
199
  @checkout_zone_or_default ||= checkout_zone || Spree::Zone.default_checkout_zone
200
200
  end
@@ -5,7 +5,11 @@ module Spree
5
5
  include Spree::Webhooks::HasWebhooks
6
6
  end
7
7
 
8
- has_secure_token
8
+ if Rails::VERSION::STRING >= '7.1.0'
9
+ has_secure_token on: :save
10
+ else
11
+ has_secure_token
12
+ end
9
13
 
10
14
  belongs_to :user, class_name: "::#{Spree.user_class}", touch: true
11
15
  belongs_to :store, class_name: 'Spree::Store'
@@ -74,7 +74,7 @@ module Spree
74
74
  end
75
75
 
76
76
  def self.default_checkout_zone
77
- ActiveSupport::Deprecation.warn('Spree::Zone.default_checkout_zone is deprecated and will be removed in Spree 5')
77
+ Spree::Deprecation.warn('Spree::Zone.default_checkout_zone is deprecated and will be removed in Spree 5')
78
78
 
79
79
  first
80
80
  end
@@ -9,34 +9,19 @@ module Spree
9
9
 
10
10
  def call
11
11
  ApplicationRecord.transaction do
12
- if Rails::VERSION::MAJOR >= 6
13
- new_countries = Carmen::Country.all.map do |country|
14
- # Skip the creation of some territories, uninhabited islands and the Antarctic.
15
- next if EXCLUDED_COUNTRIES.include?(country.alpha_2_code)
12
+ new_countries = Carmen::Country.all.map do |country|
13
+ # Skip the creation of some territories, uninhabited islands and the Antarctic.
14
+ next if EXCLUDED_COUNTRIES.include?(country.alpha_2_code)
16
15
 
17
- Hash[
18
- 'name': country.name,
19
- 'iso3': country.alpha_3_code,
20
- 'iso': country.alpha_2_code,
21
- 'iso_name': country.name.upcase,
22
- 'numcode': country.numeric_code,
23
- ]
24
- end.compact.uniq
25
- Spree::Country.insert_all(new_countries)
26
- else
27
- Carmen::Country.all.each do |country|
28
- # Skip the creation of some territories, uninhabited islands and the Antarctic.
29
- next if EXCLUDED_COUNTRIES.include?(country.alpha_2_code)
30
-
31
- Spree::Country.where(
32
- name: country.name,
33
- iso3: country.alpha_3_code,
34
- iso: country.alpha_2_code,
35
- iso_name: country.name.upcase,
36
- numcode: country.numeric_code
37
- ).first_or_create!
38
- end
39
- end
16
+ Hash[
17
+ 'name': country.name,
18
+ 'iso3': country.alpha_3_code,
19
+ 'iso': country.alpha_2_code,
20
+ 'iso_name': country.name.upcase,
21
+ 'numcode': country.numeric_code,
22
+ ]
23
+ end.compact.uniq
24
+ Spree::Country.insert_all(new_countries)
40
25
 
41
26
  # Find countries that do not use postal codes (by iso) and set 'zipcode_required' to false for them.
42
27
  Spree::Country.where(iso: Spree::Address::NO_ZIPCODE_ISO_CODES).update_all(zipcode_required: false)
@@ -49,23 +49,14 @@ module Spree
49
49
  end
50
50
 
51
51
  def province_level(country, subregion)
52
- if Rails::VERSION::MAJOR >= 6
53
- new_states = subregion.subregions.map do |province|
54
- Hash[
55
- name: province.name,
56
- abbr: province.code,
57
- country_id: country.id
58
- ]
59
- end.compact.uniq
60
- Spree::State.insert_all(new_states)
61
- else
62
- subregion.subregions.each do |province|
63
- country.states.where(
64
- name: province.name,
65
- abbr: province.code
66
- ).first_or_create!
67
- end
68
- end
52
+ new_states = subregion.subregions.map do |province|
53
+ Hash[
54
+ name: province.name,
55
+ abbr: province.code,
56
+ country_id: country.id
57
+ ]
58
+ end.compact.uniq
59
+ Spree::State.insert_all(new_states)
69
60
  end
70
61
  end
71
62
  end
@@ -5,24 +5,18 @@ module Spree
5
5
  prepend Spree::ServiceModule::Base
6
6
 
7
7
  def call(stock_location:, variants_scope: Spree::Variant)
8
- if Rails::VERSION::MAJOR >= 6
9
- prepared_stock_items = variants_scope.ids.map do |variant_id|
10
- Hash[
11
- 'stock_location_id', stock_location.id,
12
- 'variant_id', variant_id,
13
- 'backorderable', stock_location.backorderable_default,
14
- 'created_at', Time.current,
15
- 'updated_at', Time.current
16
- ]
17
- end
18
- if prepared_stock_items.any?
19
- stock_location.stock_items.insert_all(prepared_stock_items)
20
- variants_scope.touch_all
21
- end
22
- else
23
- variants_scope.find_each do |variant|
24
- stock_location.propagate_variant(variant)
25
- end
8
+ prepared_stock_items = variants_scope.ids.map do |variant_id|
9
+ Hash[
10
+ 'stock_location_id', stock_location.id,
11
+ 'variant_id', variant_id,
12
+ 'backorderable', stock_location.backorderable_default,
13
+ 'created_at', Time.current,
14
+ 'updated_at', Time.current
15
+ ]
16
+ end
17
+ if prepared_stock_items.any?
18
+ stock_location.stock_items.insert_all(prepared_stock_items)
19
+ variants_scope.touch_all
26
20
  end
27
21
  end
28
22
  end
@@ -2,16 +2,12 @@
2
2
  # Validates a field based on the maximum length of the underlying DB field, if there is one.
3
3
  class DbMaximumLengthValidator < ActiveModel::EachValidator
4
4
  def validate_each(record, attribute, value)
5
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
5
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
6
6
  `DbMaximumLengthValidator` is deprecated and will be removed in Spree 5.0.
7
7
  Please remove any `db_maximum_length: true` validations from your codebase
8
8
  DEPRECATION
9
9
 
10
- limit = if defined?(Globalize)
11
- record.class.translation_class.columns_hash[attribute.to_s].limit
12
- else
13
- record.class.columns_hash[attribute.to_s].limit
14
- end
10
+ limit = record.class.columns_hash[attribute.to_s].limit
15
11
  value = record[attribute.to_sym]
16
12
  if value && limit && value.to_s.length > limit
17
13
  record.errors.add(attribute.to_sym, :too_long, count: limit)
@@ -1,3 +1 @@
1
- if Rails::VERSION::STRING >= '6.1'
2
- ActiveRecord::Base.has_many_inversing = false
3
- end
1
+ ActiveRecord::Base.has_many_inversing = false
@@ -1,6 +1,8 @@
1
1
  en:
2
2
  activemodel:
3
3
  errors:
4
+ messages:
5
+ blank: can't be blank
4
6
  models:
5
7
  spree/fulfilment_changer:
6
8
  attributes:
@@ -309,6 +311,8 @@ en:
309
311
  one: Zone
310
312
  other: Zones
311
313
  errors:
314
+ messages:
315
+ blank: can't be blank
312
316
  models:
313
317
  spree/calculator/tiered_flat_rate:
314
318
  attributes:
@@ -1572,6 +1576,7 @@ en:
1572
1576
  starting_from: Starts at
1573
1577
  state: State
1574
1578
  state_based: State Based
1579
+ state_changes: State Changes
1575
1580
  states: States
1576
1581
  state_machine_states:
1577
1582
  accepted: Accepted
@@ -1750,6 +1755,7 @@ en:
1750
1755
  transfer_from_location: Transfer From
1751
1756
  transfer_stock: Transfer Stock
1752
1757
  transfer_to_location: Transfer To
1758
+ translations: Translations
1753
1759
  tree: Tree
1754
1760
  type: Type
1755
1761
  type_to_search: Type to search
@@ -76,7 +76,7 @@ module Spree
76
76
 
77
77
  # searcher_class allows spree extension writers to provide their own Search class
78
78
  def searcher_class
79
- ActiveSupport::Deprecation.warn('`Spree::Config.searcher_class` is deprecated and will be removed in Spree v5, please use `Spree.searcher_class` instead.')
79
+ Spree::Deprecation.warn('`Spree::Config.searcher_class` is deprecated and will be removed in Spree v5, please use `Spree.searcher_class` instead.')
80
80
  @searcher_class ||= Spree.searcher_class
81
81
  end
82
82
 
@@ -75,7 +75,7 @@ module Spree
75
75
  # Override this method in your controllers if you want to have special behavior in case the user is not authorized
76
76
  # to access the requested action. For example, a popup window might simply close itself.
77
77
  def redirect_unauthorized_access
78
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
78
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
79
79
  Core::ControllerHelpers#redirect_unauthorized_access is deprecated and will be removed in Spree 5.0.
80
80
  This method is implemented differently for Storefront and Admin
81
81
  DEPRECATION
@@ -17,7 +17,7 @@ module Spree
17
17
  attr_writer :title
18
18
 
19
19
  def title
20
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
20
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
21
21
  ControllerHelpers::Common is deprecated and will be removed in Spree 5.0.
22
22
  DEPRECATION
23
23
  title_string = @title.present? ? @title : accurate_title
@@ -33,7 +33,7 @@ module Spree
33
33
  end
34
34
 
35
35
  def default_title
36
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
36
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
37
37
  ControllerHelpers::Common is deprecated and will be removed in Spree 5.0.
38
38
  DEPRECATION
39
39
  current_store.name
@@ -41,7 +41,7 @@ module Spree
41
41
 
42
42
  # this is a hook for subclasses to provide title
43
43
  def accurate_title
44
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
44
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
45
45
  ControllerHelpers::Common is deprecated and will be removed in Spree 5.0.
46
46
  DEPRECATION
47
47
  current_store.seo_title
@@ -50,7 +50,7 @@ module Spree
50
50
  private
51
51
 
52
52
  def set_user_language
53
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
53
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
54
54
  ControllerHelpers::Common#set_user_language is deprecated and will be removed in Spree 5.0.
55
55
  Please use `before_action :set_locale` instead
56
56
  DEPRECATION
@@ -65,7 +65,7 @@ module Spree
65
65
  # Default layout is: +app/views/spree/layouts/spree_application+
66
66
  #
67
67
  def get_layout
68
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
68
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
69
69
  ControllerHelpers::Common is deprecated and will be removed in Spree 5.0.
70
70
  DEPRECATION
71
71
  return unless defined?(Spree::Frontend)
@@ -27,6 +27,7 @@ module Spree
27
27
  app.config.active_record.yaml_column_permitted_classes = [Symbol, BigDecimal]
28
28
  Spree::Config = app.config.spree.preferences
29
29
  Spree::Dependencies = app.config.spree.dependencies
30
+ Spree::Deprecation = ActiveSupport::Deprecation.new
30
31
  end
31
32
 
32
33
  initializer 'spree.register.calculators', before: :after_initialize do |app|
@@ -19,7 +19,7 @@ module Spree::Preferences
19
19
  value = convert_preference_value(value, type)
20
20
  preferences[name] = value
21
21
 
22
- ActiveSupport::Deprecation.warn("`#{name}` is deprecated. #{deprecated}") if deprecated
22
+ Spree::Deprecation.warn("`#{name}` is deprecated. #{deprecated}") if deprecated
23
23
 
24
24
  # If this is an activerecord object, we need to inform
25
25
  # ActiveRecord::Dirty that this value has changed, since this is an
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- VERSION = '4.6.2'.freeze
2
+ VERSION = '4.7.0'.freeze
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -8,7 +8,7 @@ module Spree
8
8
  end
9
9
 
10
10
  def spree_get(action, parameters = nil, session = nil, flash = nil)
11
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
11
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
12
12
  ControllerRequests#spree_get is deprecated and will be removed in Spree 5.0.
13
13
  Please use get, params: {}
14
14
  DEPRECATION
@@ -17,7 +17,7 @@ module Spree
17
17
 
18
18
  # Executes a request simulating POST HTTP method and set/volley the response
19
19
  def spree_post(action, parameters = nil, session = nil, flash = nil)
20
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
20
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
21
21
  ControllerRequests#spree_post is deprecated and will be removed in Spree 5.0.
22
22
  Please use post, params: {}
23
23
  DEPRECATION
@@ -26,7 +26,7 @@ module Spree
26
26
 
27
27
  # Executes a request simulating PUT HTTP method and set/volley the response
28
28
  def spree_put(action, parameters = nil, session = nil, flash = nil)
29
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
29
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
30
30
  ControllerRequests#spree_put is deprecated and will be removed in Spree 5.0.
31
31
  Please use put, params: {}
32
32
  DEPRECATION
@@ -35,7 +35,7 @@ module Spree
35
35
 
36
36
  # # Executes a request simulating PATCH HTTP method and set/volley the response
37
37
  def spree_patch(action, parameters = nil, session = nil, flash = nil)
38
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
38
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
39
39
  ControllerRequests#spree_patch is deprecated and will be removed in Spree 5.0.
40
40
  Please use patch, params: {}
41
41
  DEPRECATION
@@ -44,7 +44,7 @@ module Spree
44
44
 
45
45
  # Executes a request simulating DELETE HTTP method and set/volley the response
46
46
  def spree_delete(action, parameters = nil, session = nil, flash = nil)
47
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
47
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
48
48
  ControllerRequests#spree_delete is deprecated and will be removed in Spree 5.0.
49
49
  Please use delete, params: {}
50
50
  DEPRECATION
@@ -52,35 +52,35 @@ module Spree
52
52
  end
53
53
 
54
54
  def spree_xhr_get(action, parameters = nil, session = nil, flash = nil)
55
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
55
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
56
56
  ControllerRequests#spree_xhr_get is deprecated and will be removed in Spree 5.0.
57
57
  DEPRECATION
58
58
  process_spree_xhr_action(action, parameters, session, flash, :get)
59
59
  end
60
60
 
61
61
  def spree_xhr_post(action, parameters = nil, session = nil, flash = nil)
62
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
62
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
63
63
  ControllerRequests#spree_xhr_post is deprecated and will be removed in Spree 5.0.
64
64
  DEPRECATION
65
65
  process_spree_xhr_action(action, parameters, session, flash, :post)
66
66
  end
67
67
 
68
68
  def spree_xhr_put(action, parameters = nil, session = nil, flash = nil)
69
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
69
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
70
70
  ControllerRequests#spree_xhr_put is deprecated and will be removed in Spree 5.0.
71
71
  DEPRECATION
72
72
  process_spree_xhr_action(action, parameters, session, flash, :put)
73
73
  end
74
74
 
75
75
  def spree_xhr_patch(action, parameters = nil, session = nil, flash = nil)
76
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
76
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
77
77
  ControllerRequests#spree_xhr_patch is deprecated and will be removed in Spree 5.0.
78
78
  DEPRECATION
79
79
  process_spree_xhr_action(action, parameters, session, flash, :patch)
80
80
  end
81
81
 
82
82
  def spree_xhr_delete(action, parameters = nil, session = nil, flash = nil)
83
- ActiveSupport::Deprecation.warn(<<-DEPRECATION, caller)
83
+ Spree::Deprecation.warn(<<-DEPRECATION, caller)
84
84
  ControllerRequests#spree_xhr_delete is deprecated and will be removed in Spree 5.0.
85
85
  DEPRECATION
86
86
  process_spree_xhr_action(action, parameters, session, flash, :delete)
data/spree_core.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  "source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
21
21
  }
22
22
 
23
- s.required_ruby_version = '>= 2.5.0'
23
+ s.required_ruby_version = '>= 3.0'
24
24
  s.required_rubygems_version = '>= 1.8.23'
25
25
 
26
26
  s.files = `git ls-files`.split("\n").reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
30
30
  actionpack actionview activejob activemodel activerecord
31
31
  activestorage activesupport railties
32
32
  ].each do |rails_gem|
33
- s.add_dependency rails_gem, '>= 6.1'
33
+ s.add_dependency rails_gem, '>= 6.1', '< 7.2'
34
34
  end
35
35
 
36
36
  s.add_dependency 'activemerchant', '~> 1.67'
@@ -45,7 +45,7 @@ Gem::Specification.new do |s|
45
45
  s.add_dependency 'money', '~> 6.13'
46
46
  s.add_dependency 'monetize', '~> 1.9'
47
47
  s.add_dependency 'paranoia', '~> 2.4'
48
- s.add_dependency 'ransack', '>= 2.3', '< 3.0'
48
+ s.add_dependency 'ransack', '>= 4.1'
49
49
  s.add_dependency 'rexml'
50
50
  s.add_dependency 'state_machines-activerecord', '~> 0.6'
51
51
  s.add_dependency 'state_machines-activemodel', '~> 0.7'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.2
4
+ version: 4.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-04 00:00:00.000000000 Z
12
+ date: 2023-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionpack
@@ -18,6 +18,9 @@ dependencies:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '6.1'
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '7.2'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,6 +28,9 @@ dependencies:
25
28
  - - ">="
26
29
  - !ruby/object:Gem::Version
27
30
  version: '6.1'
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '7.2'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: actionview
30
36
  requirement: !ruby/object:Gem::Requirement
@@ -32,6 +38,9 @@ dependencies:
32
38
  - - ">="
33
39
  - !ruby/object:Gem::Version
34
40
  version: '6.1'
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '7.2'
35
44
  type: :runtime
36
45
  prerelease: false
37
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -39,6 +48,9 @@ dependencies:
39
48
  - - ">="
40
49
  - !ruby/object:Gem::Version
41
50
  version: '6.1'
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '7.2'
42
54
  - !ruby/object:Gem::Dependency
43
55
  name: activejob
44
56
  requirement: !ruby/object:Gem::Requirement
@@ -46,6 +58,9 @@ dependencies:
46
58
  - - ">="
47
59
  - !ruby/object:Gem::Version
48
60
  version: '6.1'
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '7.2'
49
64
  type: :runtime
50
65
  prerelease: false
51
66
  version_requirements: !ruby/object:Gem::Requirement
@@ -53,6 +68,9 @@ dependencies:
53
68
  - - ">="
54
69
  - !ruby/object:Gem::Version
55
70
  version: '6.1'
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '7.2'
56
74
  - !ruby/object:Gem::Dependency
57
75
  name: activemodel
58
76
  requirement: !ruby/object:Gem::Requirement
@@ -60,6 +78,9 @@ dependencies:
60
78
  - - ">="
61
79
  - !ruby/object:Gem::Version
62
80
  version: '6.1'
81
+ - - "<"
82
+ - !ruby/object:Gem::Version
83
+ version: '7.2'
63
84
  type: :runtime
64
85
  prerelease: false
65
86
  version_requirements: !ruby/object:Gem::Requirement
@@ -67,6 +88,9 @@ dependencies:
67
88
  - - ">="
68
89
  - !ruby/object:Gem::Version
69
90
  version: '6.1'
91
+ - - "<"
92
+ - !ruby/object:Gem::Version
93
+ version: '7.2'
70
94
  - !ruby/object:Gem::Dependency
71
95
  name: activerecord
72
96
  requirement: !ruby/object:Gem::Requirement
@@ -74,6 +98,9 @@ dependencies:
74
98
  - - ">="
75
99
  - !ruby/object:Gem::Version
76
100
  version: '6.1'
101
+ - - "<"
102
+ - !ruby/object:Gem::Version
103
+ version: '7.2'
77
104
  type: :runtime
78
105
  prerelease: false
79
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -81,6 +108,9 @@ dependencies:
81
108
  - - ">="
82
109
  - !ruby/object:Gem::Version
83
110
  version: '6.1'
111
+ - - "<"
112
+ - !ruby/object:Gem::Version
113
+ version: '7.2'
84
114
  - !ruby/object:Gem::Dependency
85
115
  name: activestorage
86
116
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +118,9 @@ dependencies:
88
118
  - - ">="
89
119
  - !ruby/object:Gem::Version
90
120
  version: '6.1'
121
+ - - "<"
122
+ - !ruby/object:Gem::Version
123
+ version: '7.2'
91
124
  type: :runtime
92
125
  prerelease: false
93
126
  version_requirements: !ruby/object:Gem::Requirement
@@ -95,6 +128,9 @@ dependencies:
95
128
  - - ">="
96
129
  - !ruby/object:Gem::Version
97
130
  version: '6.1'
131
+ - - "<"
132
+ - !ruby/object:Gem::Version
133
+ version: '7.2'
98
134
  - !ruby/object:Gem::Dependency
99
135
  name: activesupport
100
136
  requirement: !ruby/object:Gem::Requirement
@@ -102,6 +138,9 @@ dependencies:
102
138
  - - ">="
103
139
  - !ruby/object:Gem::Version
104
140
  version: '6.1'
141
+ - - "<"
142
+ - !ruby/object:Gem::Version
143
+ version: '7.2'
105
144
  type: :runtime
106
145
  prerelease: false
107
146
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,6 +148,9 @@ dependencies:
109
148
  - - ">="
110
149
  - !ruby/object:Gem::Version
111
150
  version: '6.1'
151
+ - - "<"
152
+ - !ruby/object:Gem::Version
153
+ version: '7.2'
112
154
  - !ruby/object:Gem::Dependency
113
155
  name: railties
114
156
  requirement: !ruby/object:Gem::Requirement
@@ -116,6 +158,9 @@ dependencies:
116
158
  - - ">="
117
159
  - !ruby/object:Gem::Version
118
160
  version: '6.1'
161
+ - - "<"
162
+ - !ruby/object:Gem::Version
163
+ version: '7.2'
119
164
  type: :runtime
120
165
  prerelease: false
121
166
  version_requirements: !ruby/object:Gem::Requirement
@@ -123,6 +168,9 @@ dependencies:
123
168
  - - ">="
124
169
  - !ruby/object:Gem::Version
125
170
  version: '6.1'
171
+ - - "<"
172
+ - !ruby/object:Gem::Version
173
+ version: '7.2'
126
174
  - !ruby/object:Gem::Dependency
127
175
  name: activemerchant
128
176
  requirement: !ruby/object:Gem::Requirement
@@ -309,20 +357,14 @@ dependencies:
309
357
  requirements:
310
358
  - - ">="
311
359
  - !ruby/object:Gem::Version
312
- version: '2.3'
313
- - - "<"
314
- - !ruby/object:Gem::Version
315
- version: '3.0'
360
+ version: '4.1'
316
361
  type: :runtime
317
362
  prerelease: false
318
363
  version_requirements: !ruby/object:Gem::Requirement
319
364
  requirements:
320
365
  - - ">="
321
366
  - !ruby/object:Gem::Version
322
- version: '2.3'
323
- - - "<"
324
- - !ruby/object:Gem::Version
325
- version: '3.0'
367
+ version: '4.1'
326
368
  - !ruby/object:Gem::Dependency
327
369
  name: rexml
328
370
  requirement: !ruby/object:Gem::Requirement
@@ -1079,9 +1121,9 @@ licenses:
1079
1121
  - BSD-3-Clause
1080
1122
  metadata:
1081
1123
  bug_tracker_uri: https://github.com/spree/spree/issues
1082
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.6.2
1124
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.7.0
1083
1125
  documentation_uri: https://dev-docs.spreecommerce.org/
1084
- source_code_uri: https://github.com/spree/spree/tree/v4.6.2
1126
+ source_code_uri: https://github.com/spree/spree/tree/v4.7.0
1085
1127
  post_install_message:
1086
1128
  rdoc_options: []
1087
1129
  require_paths:
@@ -1090,7 +1132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1090
1132
  requirements:
1091
1133
  - - ">="
1092
1134
  - !ruby/object:Gem::Version
1093
- version: 2.5.0
1135
+ version: '3.0'
1094
1136
  required_rubygems_version: !ruby/object:Gem::Requirement
1095
1137
  requirements:
1096
1138
  - - ">="