solidus_support 0.5.0 → 0.8.1

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: e720d17f4c4d0b8dfb852da8ea260bbaa7c069b83b07e102b96633bb65ed9e18
4
- data.tar.gz: 66726d7f7d4ef6acecb63024eb7ac54888efaddb597f997c9cbda545642a4101
3
+ metadata.gz: 290b6b3d8d102c5a9346057f08c18b039395082f0d4a8ee7b59cff3f110d57a1
4
+ data.tar.gz: f6354f111b2875c3baac252f4046498f7f0e69cb7189f9d86a8c050a389c1c39
5
5
  SHA512:
6
- metadata.gz: 1b3061f16c942f99c9f6689f03e89875a1e88ff2c0761a5ad10020b7f9c80c2971a70590eeb0eca458929e86c3617ef56e2ade8a0f5f8a01e60e8c285704faa6
7
- data.tar.gz: f22c1b1daa5f11853f1d2625750927349d3e8a2b36ed4eba3a4aea62276be3e9375b4ab19d1b8132644893038a2dc04ac065342dbb28e1146b974870c3ffeb1c
6
+ metadata.gz: 193f63e10976f25a5b167603d53c0b9187e6edd2928dc2a5a56fb32b1599d58eec9afff4335a2dca4de6bd322e6b484a7866f8a19e3c5aebe6b69d6d2d426dd3
7
+ data.tar.gz: 602577640b806f17fd30d5bd90bda6b21bfd6fdf73b74674b88ae288365f1a5bb3eced6897e239fb3b2a415c396c2ed2612fdcc9ca87712c427b461194ac73d8
@@ -1,5 +1,57 @@
1
1
  # Changelog
2
2
 
3
+ ## [v0.7.0](https://github.com/solidusio/solidus_support/tree/v0.7.0) (2020-10-28)
4
+
5
+ [Full Changelog](https://github.com/solidusio/solidus_support/compare/v0.6.0...v0.7.0)
6
+
7
+ **Closed issues:**
8
+
9
+ - Could we get a new release? [\#49](https://github.com/solidusio/solidus_support/issues/49)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Use `Spree::Event. activate\_all\_subscribers` when available [\#53](https://github.com/solidusio/solidus_support/pull/53) ([spaghetticode](https://github.com/spaghetticode))
14
+ - Support Rails 5.1.x [\#51](https://github.com/solidusio/solidus_support/pull/51) ([brchristian](https://github.com/brchristian))
15
+ - Remove redundant `solidus\_core` dev dependency [\#50](https://github.com/solidusio/solidus_support/pull/50) ([brchristian](https://github.com/brchristian))
16
+
17
+ ## [v0.6.0](https://github.com/solidusio/solidus_support/tree/v0.6.0) (2020-07-24)
18
+
19
+ [Full Changelog](https://github.com/solidusio/solidus_support/compare/v0.5.1...v0.6.0)
20
+
21
+ **Implemented enhancements:**
22
+
23
+ - Autoload Solidus Event subscribers from extensions [\#45](https://github.com/solidusio/solidus_support/pull/45) ([spaghetticode](https://github.com/spaghetticode))
24
+
25
+ **Fixed bugs:**
26
+
27
+ - Load event subscribers only when Spree::Event is available [\#47](https://github.com/solidusio/solidus_support/pull/47) ([spaghetticode](https://github.com/spaghetticode))
28
+
29
+ **Closed issues:**
30
+
31
+ - Namespace Conflicts [\#48](https://github.com/solidusio/solidus_support/issues/48)
32
+
33
+ **Merged pull requests:**
34
+
35
+ - Stop using SolidusSupport.solidus\_gem\_version [\#46](https://github.com/solidusio/solidus_support/pull/46) ([elia](https://github.com/elia))
36
+ - Add frontend/backend/api decorators to autoload path [\#44](https://github.com/solidusio/solidus_support/pull/44) ([kennyadsl](https://github.com/kennyadsl))
37
+
38
+ ## [v0.5.1](https://github.com/solidusio/solidus_support/tree/v0.5.1) (2020-04-15)
39
+
40
+ [Full Changelog](https://github.com/solidusio/solidus_support/compare/v0.5.0...v0.5.1)
41
+
42
+ **Merged pull requests:**
43
+
44
+ - Push decorators to autoload path using config.autoload\_paths [\#43](https://github.com/solidusio/solidus_support/pull/43) ([kennyadsl](https://github.com/kennyadsl))
45
+
46
+ ## [v0.5.0](https://github.com/solidusio/solidus_support/tree/v0.5.0) (2020-02-18)
47
+
48
+ [Full Changelog](https://github.com/solidusio/solidus_support/compare/v0.4.1...v0.5.0)
49
+
50
+ **Merged pull requests:**
51
+
52
+ - Load Solidus engine extension files automatically [\#42](https://github.com/solidusio/solidus_support/pull/42) ([aldesantis](https://github.com/aldesantis))
53
+ - Deprecate SolidusSupport.solidus\_gem\_version [\#37](https://github.com/solidusio/solidus_support/pull/37) ([kennyadsl](https://github.com/kennyadsl))
54
+
3
55
  ## [v0.4.1](https://github.com/solidusio/solidus_support/tree/v0.4.1) (2020-01-16)
4
56
 
5
57
  [Full Changelog](https://github.com/solidusio/solidus_support/compare/v0.4.0...v0.4.1)
data/Gemfile CHANGED
@@ -16,3 +16,15 @@ else
16
16
  end
17
17
 
18
18
  gemspec
19
+
20
+ # There is an issue with Sprockets 4 not accepting a custom path for
21
+ # the assets manifest, which doesn't play well with in-memory dummy
22
+ # apps such as the one we use in this gem.
23
+
24
+ # A fix was provided for sprockets-rails[1] but it was not accepted
25
+ # yet.
26
+
27
+ # [1]: rails/sprockets-rails#446
28
+ #
29
+ # Please do not remove this line until we have a solution.
30
+ gem 'sprockets', '~> 3'
@@ -3,6 +3,7 @@
3
3
  # frozen_string_literal: true
4
4
 
5
5
  require "bundler/setup"
6
+ require "rails/all"
6
7
  require "solidus_support"
7
8
 
8
9
  # You can add fixtures and/or initialization code here to make experimenting
@@ -18,12 +18,22 @@ module SolidusSupport
18
18
 
19
19
  def reset_spree_preferences_deprecated?
20
20
  first_version_without_reset = Gem::Requirement.new('>= 2.9')
21
- first_version_without_reset.satisfied_by?(solidus_gem_version)
21
+ first_version_without_reset.satisfied_by?(Spree.solidus_gem_version)
22
+ end
23
+
24
+ def combined_first_and_last_name_in_address?
25
+ versions_before_preference = Gem::Requirement.new('< 2.11.0')
26
+ versions_after_preference = Gem::Requirement.new('>= 3.0.0.alpha')
27
+
28
+ return false if versions_before_preference.satisfied_by?(Spree.solidus_gem_version)
29
+ return true if versions_after_preference.satisfied_by?(Spree.solidus_gem_version)
30
+
31
+ Spree::Config.use_combined_first_and_last_name_in_address
22
32
  end
23
33
 
24
34
  def new_gateway_code?
25
35
  first_version_with_new_gateway_code = Gem::Requirement.new('>= 2.3')
26
- first_version_with_new_gateway_code.satisfied_by?(solidus_gem_version)
36
+ first_version_with_new_gateway_code.satisfied_by?(Spree.solidus_gem_version)
27
37
  end
28
38
 
29
39
  def payment_source_parent_class
@@ -9,6 +9,10 @@ module SolidusSupport
9
9
  engine.extend ClassMethods
10
10
 
11
11
  engine.class_eval do
12
+ solidus_decorators_root.glob('*') do |decorators_folder|
13
+ config.autoload_paths += [decorators_folder]
14
+ end
15
+
12
16
  config.to_prepare(&method(:activate))
13
17
 
14
18
  enable_solidus_engine_support('backend') if SolidusSupport.backend_available?
@@ -19,15 +23,26 @@ module SolidusSupport
19
23
 
20
24
  module ClassMethods
21
25
  def activate
22
- if Rails.respond_to?(:autoloaders) && Rails.autoloaders.main
23
- # Add decorators folder to the Rails autoloader. This tells Zeitwerk to treat paths
24
- # such as app/decorators/controllers as roots.
25
- solidus_decorators_root.glob('*') do |decorators_folder|
26
- Rails.autoloaders.main.push_dir(decorators_folder)
26
+ load_solidus_decorators_from(solidus_decorators_root)
27
+ load_solidus_subscribers_from(solidus_subscribers_root)
28
+ end
29
+
30
+ # Loads Solidus event subscriber files.
31
+ #
32
+ # This allows to add event subscribers to extensions without explicitly subscribing them,
33
+ # similarly to what happens in Solidus core.
34
+ def load_solidus_subscribers_from(path)
35
+ if defined? Spree::Event
36
+ path.glob("**/*_subscriber.rb") do |subscriber_path|
37
+ require_dependency(subscriber_path)
27
38
  end
28
- end
29
39
 
30
- load_solidus_decorators_from(solidus_decorators_root)
40
+ if Spree::Event.respond_to?(:activate_all_subscribers)
41
+ Spree::Event.activate_all_subscribers
42
+ else
43
+ Spree::Event.subscribers.each(&:subscribe!)
44
+ end
45
+ end
31
46
  end
32
47
 
33
48
  # Loads decorator files.
@@ -50,6 +65,13 @@ module SolidusSupport
50
65
  root.join('app/decorators')
51
66
  end
52
67
 
68
+ # Returns the root for this engine's Solidus event subscribers.
69
+ #
70
+ # @return [Path]
71
+ def solidus_subscribers_root
72
+ root.join("app/subscribers")
73
+ end
74
+
53
75
  # Enables support for a Solidus engine.
54
76
  #
55
77
  # This will tell Rails to:
@@ -63,10 +85,13 @@ module SolidusSupport
63
85
  paths['app/controllers'] << "lib/controllers/#{engine}"
64
86
  paths['app/views'] << "lib/views/#{engine}"
65
87
 
88
+ path = root.join("lib/decorators/#{engine}")
89
+
90
+ config.autoload_paths += path.glob('*')
91
+
66
92
  engine_context = self
67
93
  config.to_prepare do
68
94
  engine_context.instance_eval do
69
- path = root.join("lib/decorators/#{engine}")
70
95
  load_solidus_decorators_from(path)
71
96
  end
72
97
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidusSupport
4
- VERSION = '0.5.0'
4
+ VERSION = '0.8.1'
5
5
  end
@@ -21,13 +21,11 @@ Gem::Specification.new do |s|
21
21
  s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  s.require_paths = ["lib"]
23
23
 
24
- s.add_dependency 'activesupport', ['>= 5.2', '< 7.0.x']
25
-
24
+ s.add_development_dependency 'rails'
26
25
  s.add_development_dependency 'bundler'
27
26
  s.add_development_dependency 'rake'
28
27
  s.add_development_dependency 'rspec-rails'
29
28
  s.add_development_dependency 'rubocop'
30
29
  s.add_development_dependency 'rubocop-rspec'
31
- s.add_development_dependency 'solidus_core'
32
30
  s.add_development_dependency 'solidus_dev_support'
33
31
  end
@@ -7,7 +7,7 @@ RSpec.describe SolidusSupport do
7
7
  let(:credit_card) { nil }
8
8
 
9
9
  before do
10
- allow(described_class).to receive(:solidus_gem_version) do
10
+ allow(Spree).to receive(:solidus_gem_version) do
11
11
  Gem::Version.new(solidus_version)
12
12
  end
13
13
  end
@@ -42,4 +42,37 @@ RSpec.describe SolidusSupport do
42
42
  end
43
43
  # rubocop:enable RSpec/NestedGroups
44
44
  end
45
+
46
+ describe '.combined_first_and_last_name_in_address?' do
47
+ subject { described_class.combined_first_and_last_name_in_address? }
48
+
49
+ before do
50
+ allow(Spree).to receive(:solidus_gem_version) do
51
+ Gem::Version.new(solidus_version)
52
+ end
53
+ end
54
+
55
+ context 'when Solidus did not have the code to combine addresses fields' do
56
+ let(:solidus_version) { '2.9.3' }
57
+
58
+ it { is_expected.to be_falsey }
59
+ end
60
+
61
+ context 'when Solidus has preference to choose if combine addresses fields' do
62
+ let(:solidus_version) { '2.11.3' }
63
+ before do
64
+ allow(Spree::Config)
65
+ .to receive(:use_combined_first_and_last_name_in_address)
66
+ .and_return(true)
67
+ end
68
+
69
+ it { is_expected.to be_truthy }
70
+ end
71
+
72
+ context 'when Solidus only has code to combine addresses fields' do
73
+ let(:solidus_version) { '3.0.0' }
74
+
75
+ it { is_expected.to be_truthy }
76
+ end
77
+ end
45
78
  end
@@ -14,7 +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
- config.active_record.sqlite3.represent_boolean_as_integer = true
18
17
  end
19
18
  end
20
19
 
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Hawthorn
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-18 00:00:00.000000000 Z
11
+ date: 2021-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
14
+ name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: 7.0.x
23
- type: :runtime
19
+ version: '0'
20
+ type: :development
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '5.2'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: 7.0.x
26
+ version: '0'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: bundler
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -100,20 +94,6 @@ dependencies:
100
94
  - - ">="
101
95
  - !ruby/object:Gem::Version
102
96
  version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: solidus_core
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :development
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
97
  - !ruby/object:Gem::Dependency
118
98
  name: solidus_dev_support
119
99
  requirement: !ruby/object:Gem::Requirement
@@ -128,7 +108,7 @@ dependencies:
128
108
  - - ">="
129
109
  - !ruby/object:Gem::Version
130
110
  version: '0'
131
- description:
111
+ description:
132
112
  email: john@stembolt.com
133
113
  executables: []
134
114
  extensions: []
@@ -161,7 +141,7 @@ homepage: https://github.com/solidusio/solidus_support
161
141
  licenses:
162
142
  - BSD-3-Clause
163
143
  metadata: {}
164
- post_install_message:
144
+ post_install_message:
165
145
  rdoc_options: []
166
146
  require_paths:
167
147
  - lib
@@ -176,8 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
156
  - !ruby/object:Gem::Version
177
157
  version: '0'
178
158
  requirements: []
179
- rubygems_version: 3.0.3
180
- signing_key:
159
+ rubygems_version: 3.1.4
160
+ signing_key:
181
161
  specification_version: 4
182
162
  summary: Common runtime helpers for Solidus extensions.
183
163
  test_files: