solidus_core 4.1.5 → 4.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8422983aea32a3cdf481647862a2ada3210d21c38936c0d0af370772bc04b4d
4
- data.tar.gz: 6fb241fe0339fce0747a496366f449f69671d90c0a69cd9483ccd1b0229ce7c0
3
+ metadata.gz: 38811ef28b9faebde7b3e42b07d31d5565b80d06835baf1ac58bb0ae97414af9
4
+ data.tar.gz: 2d6068d00488c061d340b7d3fd64f1e1ee1400b8d74dcb2e7488651b44738fd8
5
5
  SHA512:
6
- metadata.gz: 5ca4af53faa281166a5a0f345d60a628e96dadbfce58a30d4948a63a21dc7386009d4b2a7c88521dc9979a61d8ac1adc4741e70168cc689e70b7b6f0deeb5368
7
- data.tar.gz: 59ea38f49224546adf4bafc2720e6bd583b8823f3e4582c250c3fa949cc1a153479f2d969694f65a0b2e1d224e3c60595cfd0140e69c0e929db7d50a039b679d
6
+ metadata.gz: e6e9c756ed977b4f49af8d1289917227aab0d7014f48c57c7292cfbe7777ac73663e302845c7d2934c2103d8d67da7af622dbaac06e2c6e5ff20ee7e3d0fa313
7
+ data.tar.gz: afd76f1f8e11e2c2c0f18fecb226a197b3c7a7ae70d22449bb3866c48f5e8d3dea0bb2b23113a0324dedb1439820bec6a87f2a4b5c5ad7f743b140e418d722f7
@@ -264,7 +264,7 @@ module Spree
264
264
  @recalculator ||= Spree::Config.order_recalculator_class.new(self)
265
265
  end
266
266
  alias_method :updater, :recalculator
267
- deprecate updater: :recalculator, deprecator: Spree::Deprecation
267
+ deprecate updater: :recalculator, deprecator: Spree.deprecator
268
268
 
269
269
  def assign_billing_to_shipping_address
270
270
  self.ship_address = bill_address if bill_address
@@ -513,7 +513,7 @@ module Spree
513
513
  end
514
514
 
515
515
  alias_method :ensure_updated_shipments, :check_shipments_and_restart_checkout
516
- deprecate ensure_updated_shipments: :check_shipments_and_restart_checkout, deprecator: Spree::Deprecation
516
+ deprecate ensure_updated_shipments: :check_shipments_and_restart_checkout, deprecator: Spree.deprecator
517
517
 
518
518
  def restart_checkout_flow
519
519
  return if state == 'cart'
@@ -44,7 +44,6 @@ class Spree::OrderShipping
44
44
  # @return The carton created.
45
45
  def ship(inventory_units:, stock_location:, address:, shipping_method:,
46
46
  shipped_at: Time.current, external_number: nil, tracking_number: nil, suppress_mailer: false)
47
-
48
47
  carton = nil
49
48
 
50
49
  Spree::InventoryUnit.transaction do
@@ -31,7 +31,7 @@ module Spree
31
31
  end
32
32
  end
33
33
  alias_method :update, :recalculate
34
- deprecate update: :recalculate, deprecator: Spree::Deprecation
34
+ deprecate update: :recalculate, deprecator: Spree.deprecator
35
35
 
36
36
  # Updates the +shipment_state+ attribute according to the following logic:
37
37
  #
@@ -1539,6 +1539,7 @@ en:
1539
1539
  end: End
1540
1540
  ending_in: Ending in
1541
1541
  error: error
1542
+ error_user_destroy_with_orders: Cannot delete a user with orders
1542
1543
  errors:
1543
1544
  messages:
1544
1545
  cannot_delete_finalized_stock_location: Stock Location cannot be destroyed if you have open stock transfers.
@@ -33,6 +33,6 @@ Dummy::Application.configure do
33
33
 
34
34
  # Raise on deprecation warnings
35
35
  if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
36
- Spree::Deprecation.behavior = :raise
36
+ Spree.deprecator.behavior = :raise
37
37
  end
38
38
  end
@@ -75,6 +75,12 @@ module Spree
75
75
  ActionMailer::Base.preview_path = app.config.action_mailer.preview_path
76
76
  end
77
77
 
78
+ initializer "spree.deprecator" do |app|
79
+ if app.respond_to?(:deprecators)
80
+ app.deprecators[:spree] = Spree.deprecator
81
+ end
82
+ end
83
+
78
84
  config.after_initialize do
79
85
  Spree::Config.check_load_defaults_called('Spree::Config')
80
86
  Spree::Config.static_model_preferences.validate!
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spree
4
- VERSION = "4.1.5"
4
+ VERSION = "4.1.6"
5
5
 
6
6
  def self.solidus_version
7
7
  VERSION
data/lib/spree/core.rb CHANGED
@@ -9,6 +9,8 @@ require "active_record/railtie"
9
9
  require "active_storage/engine"
10
10
  require "sprockets/railtie"
11
11
 
12
+ require 'active_support/deprecation'
13
+ require 'spree/deprecated_instance_variable_proxy'
12
14
  require 'acts_as_list'
13
15
  require 'awesome_nested_set'
14
16
  require 'cancan'
@@ -19,13 +21,17 @@ require 'paperclip'
19
21
  require 'ransack'
20
22
  require 'state_machines-activerecord'
21
23
 
22
- require 'spree/deprecation'
23
-
24
24
  # This is required because ActiveModel::Validations#invalid? conflicts with the
25
25
  # invalid state of a Payment. In the future this should be removed.
26
26
  StateMachines::Machine.ignore_method_conflicts = true
27
27
 
28
28
  module Spree
29
+ def self.deprecator
30
+ @deprecator ||= ActiveSupport::Deprecation.new('5.0', 'Solidus')
31
+ end
32
+
33
+ autoload :Deprecation, 'spree/deprecation'
34
+
29
35
  mattr_accessor :user_class, default: 'Spree::LegacyUser'
30
36
 
31
37
  def self.user_class
@@ -36,6 +42,10 @@ module Spree
36
42
  end
37
43
  end
38
44
 
45
+ def self.user_class_name
46
+ @@user_class
47
+ end
48
+
39
49
  # Load the same version defaults for all available Solidus components
40
50
  #
41
51
  # @see Spree::Preferences::Configuration#load_defaults
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_support/deprecation'
4
+
5
+ module Spree
6
+ # This DeprecatedInstanceVariableProxy transforms instance variable to
7
+ # deprecated instance variable.
8
+ #
9
+ # It differs from ActiveSupport::DeprecatedInstanceVariableProxy since
10
+ # it allows to define a custom message.
11
+ #
12
+ # class Example
13
+ # def initialize(deprecator)
14
+ # @request = Spree::DeprecatedInstanceVariableProxy.new(self, :request, :@request, deprecator, "Please, do not use this thing.")
15
+ # @_request = :a_request
16
+ # end
17
+ #
18
+ # def request
19
+ # @_request
20
+ # end
21
+ #
22
+ # def old_request
23
+ # @request
24
+ # end
25
+ # end
26
+ #
27
+ # When someone execute any method on @request variable this will trigger
28
+ # +warn+ method on +deprecator_instance+ and will fetch <tt>@_request</tt>
29
+ # variable via +request+ method and execute the same method on non-proxy
30
+ # instance variable.
31
+ #
32
+ # Default deprecator is <tt>Spree.deprecator</tt>.
33
+ class DeprecatedInstanceVariableProxy < ActiveSupport::Deprecation::DeprecationProxy
34
+ def initialize(instance, method_or_var, var = "@#{method}", deprecator = Spree.deprecator, message = nil)
35
+ @instance = instance
36
+ @method_or_var = method_or_var
37
+ @var = var
38
+ @deprecator = deprecator
39
+ @message = message
40
+ end
41
+
42
+ private
43
+
44
+ def target
45
+ return @instance.instance_variable_get(@method_or_var) if @instance.instance_variable_defined?(@method_or_var)
46
+
47
+ @instance.__send__(@method_or_var)
48
+ end
49
+
50
+ def warn(callstack, called, args)
51
+ message = @message || "#{@var} is deprecated! Call #{@method_or_var}.#{called} instead of #{@var}.#{called}."
52
+ message = [message, "Args: #{args.inspect}"].join(" ") unless args.empty?
53
+
54
+ @deprecator.warn(message, callstack)
55
+ end
56
+ end
57
+ end
@@ -1,57 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/deprecation'
3
+ require 'spree/core'
4
4
 
5
5
  module Spree
6
- Deprecation = ActiveSupport::Deprecation.new('5.0', 'Solidus')
6
+ Deprecation = Spree.deprecator
7
7
 
8
- # This DeprecatedInstanceVariableProxy transforms instance variable to
9
- # deprecated instance variable.
10
- #
11
- # It differs from ActiveSupport::DeprecatedInstanceVariableProxy since
12
- # it allows to define a custom message.
13
- #
14
- # class Example
15
- # def initialize(deprecator)
16
- # @request = Spree::DeprecatedInstanceVariableProxy.new(self, :request, :@request, deprecator, "Please, do not use this thing.")
17
- # @_request = :a_request
18
- # end
19
- #
20
- # def request
21
- # @_request
22
- # end
23
- #
24
- # def old_request
25
- # @request
26
- # end
27
- # end
28
- #
29
- # When someone execute any method on @request variable this will trigger
30
- # +warn+ method on +deprecator_instance+ and will fetch <tt>@_request</tt>
31
- # variable via +request+ method and execute the same method on non-proxy
32
- # instance variable.
33
- #
34
- # Default deprecator is <tt>Spree::Deprecation</tt>.
35
- class DeprecatedInstanceVariableProxy < ActiveSupport::Deprecation::DeprecationProxy
36
- def initialize(instance, method, var = "@#{method}", deprecator = Spree::Deprecation, message = nil)
37
- @instance = instance
38
- @method = method
39
- @var = var
40
- @deprecator = deprecator
41
- @message = message
42
- end
43
-
44
- private
45
-
46
- def target
47
- @instance.__send__(@method)
48
- end
49
-
50
- def warn(callstack, called, args)
51
- message = @message || "#{@var} is deprecated! Call #{@method}.#{called} instead of #{@var}.#{called}."
52
- message = [message, "Args: #{args.inspect}"].join(" ")
53
-
54
- @deprecator.warn(message, callstack)
55
- end
56
- end
8
+ Spree.deprecator.warn "Spree::Deprecation is deprecated. Please use Spree.deprecator instead.", caller(2)
57
9
  end
@@ -59,7 +59,7 @@ module Spree::Preferences
59
59
  return if load_defaults_called || !Spree::Core.has_install_generator_been_run?
60
60
 
61
61
  target_name = instance_constant_name || "#{self.class.name}.new"
62
- Spree::Deprecation.warn <<~MSG
62
+ Spree.deprecator.warn <<~MSG
63
63
  It's recommended that you explicitly load the default configuration for
64
64
  your current Solidus version. You can do it by adding the following call
65
65
  to your Solidus initializer within the #{target_name} block:
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spree/deprecation'
4
3
  require 'spree/encryptor'
5
4
 
6
5
  module Spree::Preferences
@@ -142,5 +142,5 @@ end
142
142
 
143
143
  # Raise on deprecation warnings
144
144
  if ENV['SOLIDUS_RAISE_DEPRECATIONS'].present?
145
- Spree::Deprecation.behavior = :raise
145
+ Spree.deprecator.behavior = :raise
146
146
  end
@@ -4,8 +4,8 @@ require 'spree/testing_support/common_rake'
4
4
 
5
5
  desc "Generates a dummy app for testing an extension"
6
6
  namespace :extension do
7
- task :test_app, [:user_class] do |_t, _args|
7
+ task :test_app, [:user_class] do |_t, args|
8
8
  Spree::DummyGeneratorHelper.inject_extension_requirements = true
9
- Rake::Task['common:test_app'].invoke
9
+ Rake::Task['common:test_app'].invoke(args[:user_class])
10
10
  end
11
11
  end
@@ -30,7 +30,7 @@ module Spree
30
30
  MSG
31
31
  end
32
32
  end
33
- deprecate :check_version, deprecator: Spree::Deprecation
33
+ deprecate :check_version, deprecator: Spree.deprecator
34
34
 
35
35
  def self.add_definitions!
36
36
  ::FactoryBot.definition_file_paths.unshift(*definition_file_paths).uniq!
@@ -2,7 +2,7 @@
2
2
 
3
3
  RSpec.configure do |config|
4
4
  config.around(:each, silence_deprecations: true) do |example|
5
- Spree::Deprecation.silence do
5
+ Spree.deprecator.silence do
6
6
  example.run
7
7
  end
8
8
  end
@@ -21,8 +21,8 @@ module Spree
21
21
  # @return [String] the name of the user class as a string.
22
22
  # @raise [RuntimeError] if Spree.user_class is nil
23
23
  def to_s
24
- fail "'Spree.user_class' has not been set yet." unless Spree.user_class
25
- "::#{Spree.user_class}"
24
+ fail "'Spree.user_class' has not been set yet." unless Spree.user_class_name
25
+ "::#{Spree.user_class_name}"
26
26
  end
27
27
  end
28
28
  end
data/solidus_core.gemspec CHANGED
@@ -35,6 +35,9 @@ Gem::Specification.new do |s|
35
35
  s.add_dependency 'awesome_nested_set', '~> 3.3'
36
36
  s.add_dependency 'cancancan', ['>= 2.2', '< 4.0']
37
37
  s.add_dependency 'carmen', '~> 1.1.0'
38
+ # Adding a constraint here to make sure Rails 7.0 does not crash on startup
39
+ # https://github.com/rails/rails/pull/54264
40
+ s.add_dependency 'concurrent-ruby', '< 1.3.5'
38
41
  s.add_dependency 'discard', '~> 1.0'
39
42
  s.add_dependency 'friendly_id', '~> 5.0'
40
43
  s.add_dependency 'image_processing', '~> 1.10'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.5
4
+ version: 4.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-05 00:00:00.000000000 Z
11
+ date: 2025-02-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -266,6 +266,20 @@ dependencies:
266
266
  - - "~>"
267
267
  - !ruby/object:Gem::Version
268
268
  version: 1.1.0
269
+ - !ruby/object:Gem::Dependency
270
+ name: concurrent-ruby
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - "<"
274
+ - !ruby/object:Gem::Version
275
+ version: 1.3.5
276
+ type: :runtime
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - "<"
281
+ - !ruby/object:Gem::Version
282
+ version: 1.3.5
269
283
  - !ruby/object:Gem::Dependency
270
284
  name: discard
271
285
  requirement: !ruby/object:Gem::Requirement
@@ -866,6 +880,7 @@ files:
866
880
  - lib/spree/core/validators/email.rb
867
881
  - lib/spree/core/version.rb
868
882
  - lib/spree/core/versioned_value.rb
883
+ - lib/spree/deprecated_instance_variable_proxy.rb
869
884
  - lib/spree/deprecation.rb
870
885
  - lib/spree/encryptor.rb
871
886
  - lib/spree/i18n.rb
@@ -1047,7 +1062,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1047
1062
  - !ruby/object:Gem::Version
1048
1063
  version: 1.8.23
1049
1064
  requirements: []
1050
- rubygems_version: 3.4.19
1065
+ rubygems_version: 3.5.3
1051
1066
  signing_key:
1052
1067
  specification_version: 4
1053
1068
  summary: Essential models, mailers, and classes for the Solidus e-commerce project.