solidus_support 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b29adfe3ba04b222f4644fb12d8e26d4b77f1f438d75ed4fe72873b2c29b1301
4
- data.tar.gz: b5e87fb3449a317d500bc0a87d8e45f0efafbac61c825363dc2bf0dcf8374ed9
3
+ metadata.gz: 2cdd9849818af1dc56048136d30a8198d6d79c7245250824283659a47c396932
4
+ data.tar.gz: e82afa4bcca816ad08c7b0afb4ff09279104c99c111818d96ba26cf0f7dab2f7
5
5
  SHA512:
6
- metadata.gz: b0303b76dab3ad82ff50fe85cc4508c5750241a06a2d179a2feacf005c402017c1f15488e3eb1082147449d96ea040e5a3fd2df09bd74c675d9ceef7c87906f6
7
- data.tar.gz: '068a4e6077b32e4e3a78577912fbcfbad23fede909822cb9c6a26d5d1f5346bc753d07ed38dd17cadf1e4787431b1032fc2551ea023c44a0974d75f7d7890680'
6
+ metadata.gz: f619198e4c09da849dbab523854002358b35183d9c1cf13c5a24ae4001a986b6d5c38c5edc8d4ea06412581f4f14080a0abc1628d948409dbf47dc7be5364ee0
7
+ data.tar.gz: bb3060ebe160c24dca44376cab8d5c1cdb3bf377cc47312a1a70d15eaeabee3df045d566d464433f86b0943a24dbd5e2cbfd907a89c21374808defc0a054de72
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![CircleCI](https://dl.circleci.com/status-badge/img/gh/solidusio/solidus_support/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/solidusio/solidus_support/tree/main)
2
+
1
3
  # SolidusSupport
2
4
 
3
5
  This gem contains common runtime functionality for Solidus extensions.
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "active_support/deprecation"
4
+ require "flickwerk"
4
5
 
5
6
  module SolidusSupport
6
7
  module EngineExtensions
@@ -9,6 +10,7 @@ module SolidusSupport
9
10
 
10
11
  def self.included(engine)
11
12
  engine.extend ClassMethods
13
+ engine.include Flickwerk
12
14
 
13
15
  engine.class_eval do
14
16
  solidus_decorators_root.glob('*') do |decorators_folder|
@@ -102,7 +104,7 @@ module SolidusSupport
102
104
  # by those gems, we work around those gems by adding our paths before
103
105
  # `initialize_cache`, which is the Rails initializer called before
104
106
  # `set_load_path`.
105
- initializer "#{name}_#{engine}_paths", before: :initialize_cache do
107
+ initializer "#{engine_name}_#{engine}_paths", before: :initialize_cache do
106
108
  if SolidusSupport.send(:"#{engine}_available?")
107
109
  paths['app/controllers'] << "lib/controllers/#{engine}"
108
110
  paths['app/views'] << "lib/views/#{engine}"
@@ -111,9 +113,11 @@ module SolidusSupport
111
113
 
112
114
  if SolidusSupport.send(:"#{engine}_available?")
113
115
  decorators_path = root.join("lib/decorators/#{engine}")
116
+ patches_path = root.join("lib/patches/#{engine}")
114
117
  controllers_path = root.join("lib/controllers/#{engine}")
115
118
  components_path = root.join("lib/components/#{engine}")
116
119
  config.autoload_paths += decorators_path.glob('*')
120
+ config.autoload_paths += patches_path.glob("*")
117
121
  config.autoload_paths << controllers_path if controllers_path.exist?
118
122
  config.autoload_paths << components_path if components_path.exist?
119
123
 
@@ -124,6 +128,30 @@ module SolidusSupport
124
128
  end
125
129
  end
126
130
  end
131
+
132
+ initializer "#{engine_name}_#{engine}_patch_paths" do
133
+ patch_paths = root.join("lib/patches/#{engine}").glob("*")
134
+ Flickwerk.patch_paths += patch_paths
135
+ end
136
+
137
+ initializer "#{engine_name}_#{engine}_user_patches" do |app|
138
+ app.reloader.to_prepare do
139
+ Flickwerk.aliases["Spree.user_class"] = Spree.user_class_name
140
+ end
141
+ end
142
+
143
+ initializer "eager_load_#{engine_name}_#{engine}_patches" do |app|
144
+ # Solidus versions < 4.5 `require` some of their application code.
145
+ # This leads to hard-to-debug problems with Flickwerk patches.
146
+ # What this does is eager-load all the patches in a `to_prepare`
147
+ # hook by constantizing them.
148
+ # You can override this behavior by setting the environment variable `SOLIDUS_LAZY_LOAD_PATCHES`.
149
+ if Spree.solidus_gem_version < Gem::Version.new("4.5.0.a") && !ENV["SOLIDUS_LAZY_LOAD_PATCHES"]
150
+ app.reloader.to_prepare do
151
+ Flickwerk.patches.each_value { _1.each(&:constantize) }
152
+ end
153
+ end
154
+ end
127
155
  end
128
156
  end
129
157
  end
@@ -23,6 +23,10 @@ module SolidusSupport
23
23
  # @param event_name [Symbol]
24
24
  # @param payload [Hash<Symbol, Any>]
25
25
  def self.publish(event_name, **payload)
26
+ SolidusSupport.deprecator.warn(
27
+ "SolidusSupport::LegacyEventCompat::Bus is deprecated and will be removed in solidus_support 1.0." \
28
+ " Please use Spree::Bus.publish instead."
29
+ )
26
30
  if SolidusSupport::LegacyEventCompat.using_legacy?
27
31
  Spree::Event.fire(event_name, payload)
28
32
  else
@@ -41,6 +41,10 @@ module SolidusSupport
41
41
  end
42
42
 
43
43
  def self.included(legacy_subscriber)
44
+ SolidusSupport.deprecator.warn(
45
+ "SolidusSupport::LegacyEventCompat::Subscriber is deprecated and will be removed in solidus_support 1.0." \
46
+ " Please `include Omnes::Subscriber` in `#{legacy_subscriber.name}` instead."
47
+ )
44
48
  legacy_subscriber.define_singleton_method(:omnes_subscriber) do
45
49
  @omnes_subscriber ||= Class.new.include(::Omnes::Subscriber).tap do |subscriber|
46
50
  legacy_subscriber.event_actions.each do |(legacy_subscriber_method, event_name)|
@@ -3,15 +3,10 @@
3
3
  module SolidusSupport
4
4
  module Migration
5
5
  def self.[](version)
6
- if Rails.gem_version >= Gem::Version.new('5.x')
7
- ActiveRecord::Migration[version]
8
- else
9
- # Rails < 5 doesn't support specifying rails version of migrations, but
10
- # it _is_ rails 4.2, so we can use that when requested.
11
- return ActiveRecord::Migration if version.to_s == '4.2'
12
-
13
- raise ArgumentError, "Unknown migration version '#{version}'; expected one of '4.2'"
14
- end
6
+ SolidusSupport.deprecator.warn(
7
+ "SolidusSupport::Migration[#{version}] is deprecated. Please use ActiveRecord::Migration[#{version}] instead."
8
+ )
9
+ ActiveRecord::Migration[version]
15
10
  end
16
11
  end
17
12
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusSupport
4
- VERSION = '0.13.0'
4
+ VERSION = '0.14.0'
5
5
  end
@@ -28,6 +28,9 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ["lib"]
30
30
 
31
+ spec.add_dependency 'flickwerk', '~> 0.3.4'
32
+ spec.add_dependency 'solidus_core', '~> 4.1'
33
+
31
34
  spec.add_development_dependency 'rails'
32
35
  spec.add_development_dependency 'bundler'
33
36
  spec.add_development_dependency 'rake'
@@ -14,9 +14,6 @@ module DummyApp
14
14
  class Application < ::Rails::Application
15
15
  config.eager_load = false
16
16
  config.paths['config/database'] = File.expand_path('dummy_app/database.yml', __dir__)
17
- if ActiveRecord::VERSION::MAJOR >= 7 && ActiveRecord::VERSION::MINOR < 1
18
- config.active_record.legacy_connection_handling = false
19
- end
20
17
  end
21
18
  end
22
19
 
metadata CHANGED
@@ -1,16 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Hawthorn
8
8
  - Solidus Team
9
- autorequire:
10
9
  bindir: exe
11
10
  cert_chain: []
12
- date: 2025-01-13 00:00:00.000000000 Z
11
+ date: 2025-02-11 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: flickwerk
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.3.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.3.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: solidus_core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.1'
14
41
  - !ruby/object:Gem::Dependency
15
42
  name: rails
16
43
  requirement: !ruby/object:Gem::Requirement
@@ -123,7 +150,6 @@ dependencies:
123
150
  - - "~>"
124
151
  - !ruby/object:Gem::Version
125
152
  version: 0.2.2
126
- description:
127
153
  email: contact@solidus.io
128
154
  executables: []
129
155
  extensions: []
@@ -165,7 +191,6 @@ metadata:
165
191
  homepage_uri: https://github.com/solidusio/solidus_support
166
192
  source_code_uri: https://github.com/solidusio/solidus_support
167
193
  changelog_uri: https://github.com/solidusio/solidus_support/releases
168
- post_install_message:
169
194
  rdoc_options: []
170
195
  require_paths:
171
196
  - lib
@@ -180,8 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
180
205
  - !ruby/object:Gem::Version
181
206
  version: '0'
182
207
  requirements: []
183
- rubygems_version: 3.5.3
184
- signing_key:
208
+ rubygems_version: 3.6.3
185
209
  specification_version: 4
186
210
  summary: Common runtime helpers for Solidus extensions.
187
211
  test_files: