closure_tree 9.0.0 → 9.1.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: 7da1033357e368c9a4d2a36b95a8e75899b61b63e872c25167dd5f8862afb454
4
- data.tar.gz: '08df010ac42f946d8171152ad5ef4a8e6c1b94263cf39e5d297e4cbf805dca81'
3
+ metadata.gz: 9f55c2391c1a377f24383abdebcd716868debd94f7c0d9070e7c6c98f20fca7c
4
+ data.tar.gz: fbdbae702b5bec7a40f310e16a6a4d3eeb1c30287765ca4261e908421ec5d20a
5
5
  SHA512:
6
- metadata.gz: 34ef107ba1737f7e4cec6ff581149ce66b4daed0dee6b0e4bc266688a748c182e8c4e1082d38846de22671a23b2a640d80f753715f8e93fdc7889d134cd14c97
7
- data.tar.gz: 300a2a3b499a8428e23f89235e409dce6cbd50378ee6406f2ab03d03b97f63d20b5365ff9adabbfaff47ce9b50a54fd5a2e80576dd5839b7d23debce98528074
6
+ metadata.gz: 265cd31b5c7f5c1f3b7e90a242fb8683145a4ec67ae6f8ff0c6ea30573138e2a2cbcd962262aa7e351ebf2dd8a3a19d86ddf204d27b6c4115ded0e8f7b2a9039
7
+ data.tar.gz: 67483089bc889a8a335279bfe8239dd8ca7c9cfe06dfc646ec6da71c27b092c91bdf1fd35f14cc7a11c8d1ea6e635478c64d243e7b1af6c9477399513828f7f5
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [9.1.0](https://github.com/ClosureTree/closure_tree/compare/closure_tree/v9.0.0...closure_tree/v9.1.0) (2025-07-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * migrate from ActiveSupport::Autoload to Zeitwerk ([#457](https://github.com/ClosureTree/closure_tree/issues/457)) ([d18e80c](https://github.com/ClosureTree/closure_tree/commit/d18e80cdbd4f3510377363bc7b5166f0cc1b0a6f))
9
+
3
10
  ## [9.0.0](https://github.com/ClosureTree/closure_tree/compare/closure_tree-v8.0.0...closure_tree/v9.0.0) (2025-07-21)
4
11
 
5
12
 
data/closure_tree.gemspec CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |gem|
27
27
 
28
28
  gem.add_dependency 'activerecord', '>= 7.2.0'
29
29
  gem.add_dependency 'with_advisory_lock', '>= 7.0.0'
30
+ gem.add_dependency 'zeitwerk', '~> 2.7'
30
31
 
31
32
  gem.add_development_dependency 'database_cleaner'
32
33
  gem.add_development_dependency 'minitest'
@@ -36,8 +36,6 @@ module ClosureTree
36
36
  include ClosureTree::NumericDeterministicOrdering if _ct.order_is_numeric?
37
37
 
38
38
  connection_pool.release_connection
39
- rescue StandardError => e
40
- raise e unless ClosureTree.configuration.database_less
41
39
  end
42
40
 
43
41
  alias acts_as_tree has_closure_tree
@@ -1,12 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'closure_tree/support_flags'
4
- require 'closure_tree/support_attributes'
5
- require 'closure_tree/numeric_order_support'
6
- require 'closure_tree/active_record_support'
7
- require 'closure_tree/hash_tree_support'
8
- require 'closure_tree/arel_helpers'
9
-
10
3
  # This class and mixins are an effort to reduce the namespace pollution to models that act_as_tree.
11
4
  module ClosureTree
12
5
  class Support
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ClosureTree
4
- VERSION = Gem::Version.new('9.0.0')
4
+ VERSION = Gem::Version.new('9.1.0')
5
5
  end
data/lib/closure_tree.rb CHANGED
@@ -1,50 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'active_record'
4
+ require 'zeitwerk'
4
5
 
5
- module ClosureTree
6
- extend ActiveSupport::Autoload
7
-
8
- autoload :HasClosureTree
9
- autoload :HasClosureTreeRoot
10
- autoload :Support
11
- autoload :HierarchyMaintenance
12
- autoload :Model
13
- autoload :Finders
14
- autoload :HashTree
15
- autoload :Digraphs
16
- autoload :DeterministicOrdering
17
- autoload :NumericDeterministicOrdering
18
- autoload :Configuration
19
- autoload :AdapterSupport
6
+ loader = Zeitwerk::Loader.for_gem
7
+ loader.ignore("#{__dir__}/generators")
8
+ loader.setup
20
9
 
10
+ module ClosureTree
21
11
  def self.configure
22
- yield configuration
12
+ ActiveSupport::Deprecation.new.warn(
13
+ 'ClosureTree.configure is deprecated and will be removed in a future version. ' \
14
+ 'Configuration is no longer needed.'
15
+ )
16
+ yield if block_given?
23
17
  end
24
-
25
- def self.configuration
26
- @configuration ||= Configuration.new
27
- end
28
- end
29
-
30
- ActiveSupport.on_load :active_record do
31
- ActiveRecord::Base.extend ClosureTree::HasClosureTree
32
- ActiveRecord::Base.extend ClosureTree::HasClosureTreeRoot
33
- end
34
-
35
- # Adapter injection for different database types
36
- ActiveSupport.on_load :active_record_postgresqladapter do
37
- prepend ClosureTree::AdapterSupport
38
- end
39
-
40
- ActiveSupport.on_load :active_record_mysql2adapter do
41
- prepend ClosureTree::AdapterSupport
42
- end
43
-
44
- ActiveSupport.on_load :active_record_trilogyadapter do
45
- prepend ClosureTree::AdapterSupport
46
18
  end
47
19
 
48
- ActiveSupport.on_load :active_record_sqlite3adapter do
49
- prepend ClosureTree::AdapterSupport
20
+ ActiveSupport.on_load(:active_record) do
21
+ extend ClosureTree::HasClosureTree, ClosureTree::HasClosureTreeRoot
50
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: closure_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew McEachen
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 7.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: zeitwerk
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.7'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.7'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: database_cleaner
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -137,9 +151,7 @@ files:
137
151
  - closure_tree.gemspec
138
152
  - lib/closure_tree.rb
139
153
  - lib/closure_tree/active_record_support.rb
140
- - lib/closure_tree/adapter_support.rb
141
154
  - lib/closure_tree/arel_helpers.rb
142
- - lib/closure_tree/configuration.rb
143
155
  - lib/closure_tree/deterministic_ordering.rb
144
156
  - lib/closure_tree/digraphs.rb
145
157
  - lib/closure_tree/finders.rb
@@ -156,9 +168,7 @@ files:
156
168
  - lib/closure_tree/support_flags.rb
157
169
  - lib/closure_tree/test/matcher.rb
158
170
  - lib/closure_tree/version.rb
159
- - lib/generators/closure_tree/config_generator.rb
160
171
  - lib/generators/closure_tree/migration_generator.rb
161
- - lib/generators/closure_tree/templates/config.rb
162
172
  - lib/generators/closure_tree/templates/create_hierarchies_table.rb.erb
163
173
  homepage: https://github.com/ClosureTree/closure_tree/
164
174
  licenses:
@@ -166,7 +176,7 @@ licenses:
166
176
  metadata:
167
177
  bug_tracker_uri: https://github.com/ClosureTree/closure_tree/issues
168
178
  changelog_uri: https://github.com/ClosureTree/closure_tree/blob/master/CHANGELOG.md
169
- documentation_uri: https://www.rubydoc.info/gems/closure_tree/9.0.0
179
+ documentation_uri: https://www.rubydoc.info/gems/closure_tree/9.1.0
170
180
  homepage_uri: https://closuretree.github.io/closure_tree/
171
181
  source_code_uri: https://github.com/ClosureTree/closure_tree
172
182
  rubygems_mfa_required: 'true'
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ClosureTree
4
- module AdapterSupport
5
- extend ActiveSupport::Concern
6
-
7
- # This module is now only used to ensure the adapter has been loaded
8
- # The actual advisory lock functionality is handled through the model's
9
- # with_advisory_lock method from the with_advisory_lock gem
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ClosureTree
4
- class Configuration # :nodoc:
5
- attr_accessor :database_less
6
-
7
- def initialize
8
- @database_less = ENV['DATABASE_URL'].to_s.include?('//user:pass@127.0.0.1/')
9
- end
10
- end
11
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ClosureTree
4
- module Generators # :nodoc:
5
- class ConfigGenerator < Rails::Generators::Base # :nodoc:
6
- source_root File.expand_path('templates', __dir__)
7
- desc 'Install closure tree config.'
8
-
9
- def config
10
- template 'config.rb', 'config/initializers/closure_tree_config.rb'
11
- end
12
- end
13
- end
14
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ClosureTree.configure do |config|
4
- # Some PaaS like Heroku don't have available the db in some build steps like
5
- # assets:precompile, this is skipped when this value is true, default = false
6
- # config.database_less = true
7
- end