acts_as_recursive_tree 2.1.1 → 3.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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +44 -0
  3. data/.github/workflows/lint.yml +31 -0
  4. data/.github/workflows/rubygem.yml +37 -0
  5. data/.gitignore +3 -1
  6. data/.rubocop.yml +33 -1
  7. data/.rubocop_todo.yml +28 -281
  8. data/Appraisals +21 -0
  9. data/CHANGELOG.md +16 -1
  10. data/Gemfile +2 -0
  11. data/README.md +9 -0
  12. data/Rakefile +8 -8
  13. data/acts_as_recursive_tree.gemspec +27 -18
  14. data/gemfiles/ar_52.gemfile +8 -0
  15. data/gemfiles/ar_60.gemfile +8 -0
  16. data/gemfiles/ar_61.gemfile +8 -0
  17. data/gemfiles/ar_70.gemfile +8 -0
  18. data/lib/acts_as_recursive_tree/acts_macro.rb +6 -6
  19. data/lib/acts_as_recursive_tree/associations.rb +10 -8
  20. data/lib/acts_as_recursive_tree/builders/ancestors.rb +3 -2
  21. data/lib/acts_as_recursive_tree/builders/descendants.rb +3 -1
  22. data/lib/acts_as_recursive_tree/builders/leaves.rb +7 -8
  23. data/lib/acts_as_recursive_tree/builders/relation_builder.rb +14 -10
  24. data/lib/acts_as_recursive_tree/builders/{strategy → strategies}/ancestor.rb +3 -1
  25. data/lib/acts_as_recursive_tree/builders/{strategy → strategies}/descendant.rb +3 -1
  26. data/lib/acts_as_recursive_tree/builders/{strategy → strategies}/join.rb +5 -3
  27. data/lib/acts_as_recursive_tree/builders/{strategy → strategies}/subselect.rb +3 -1
  28. data/lib/acts_as_recursive_tree/builders/{strategy.rb → strategies.rb} +3 -9
  29. data/lib/acts_as_recursive_tree/config.rb +2 -0
  30. data/lib/acts_as_recursive_tree/model.rb +9 -8
  31. data/lib/acts_as_recursive_tree/options/depth_condition.rb +3 -2
  32. data/lib/acts_as_recursive_tree/options/query_options.rb +4 -2
  33. data/lib/acts_as_recursive_tree/options/values.rb +28 -18
  34. data/lib/acts_as_recursive_tree/railtie.rb +2 -0
  35. data/lib/acts_as_recursive_tree/scopes.rb +8 -4
  36. data/lib/acts_as_recursive_tree/version.rb +3 -1
  37. data/lib/acts_as_recursive_tree.rb +7 -11
  38. data/spec/builders_spec.rb +21 -12
  39. data/spec/db/database.rb +13 -4
  40. data/spec/db/database.yml +2 -5
  41. data/spec/db/models.rb +12 -11
  42. data/spec/db/schema.rb +3 -4
  43. data/spec/model/location_spec.rb +7 -11
  44. data/spec/model/node_spec.rb +35 -49
  45. data/spec/model/relation_spec.rb +6 -11
  46. data/spec/spec_helper.rb +54 -55
  47. data/spec/values_spec.rb +30 -19
  48. metadata +111 -26
  49. data/lib/acts_as_recursive_tree/builders.rb +0 -14
  50. data/lib/acts_as_recursive_tree/options.rb +0 -9
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_recursive_tree
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wolfgang Wedelich-John
8
+ - Willem Mulder
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2018-04-09 00:00:00.000000000 Z
12
+ date: 2021-12-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: activerecord
@@ -16,34 +17,68 @@ dependencies:
16
17
  requirements:
17
18
  - - ">="
18
19
  - !ruby/object:Gem::Version
19
- version: 5.0.0
20
+ version: 5.2.0
20
21
  - - "<"
21
22
  - !ruby/object:Gem::Version
22
- version: 6.0.0
23
+ version: '7.1'
23
24
  type: :runtime
24
25
  prerelease: false
25
26
  version_requirements: !ruby/object:Gem::Requirement
26
27
  requirements:
27
28
  - - ">="
28
29
  - !ruby/object:Gem::Version
29
- version: 5.0.0
30
+ version: 5.2.0
30
31
  - - "<"
31
32
  - !ruby/object:Gem::Version
32
- version: 6.0.0
33
+ version: '7.1'
33
34
  - !ruby/object:Gem::Dependency
34
- name: bundler
35
+ name: activesupport
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 5.2.0
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '7.1'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 5.2.0
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '7.1'
54
+ - !ruby/object:Gem::Dependency
55
+ name: zeitwerk
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '2.4'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '2.4'
68
+ - !ruby/object:Gem::Dependency
69
+ name: appraisal
35
70
  requirement: !ruby/object:Gem::Requirement
36
71
  requirements:
37
72
  - - "~>"
38
73
  - !ruby/object:Gem::Version
39
- version: '1.7'
74
+ version: '2.4'
40
75
  type: :development
41
76
  prerelease: false
42
77
  version_requirements: !ruby/object:Gem::Requirement
43
78
  requirements:
44
79
  - - "~>"
45
80
  - !ruby/object:Gem::Version
46
- version: '1.7'
81
+ version: '2.4'
47
82
  - !ruby/object:Gem::Dependency
48
83
  name: database_cleaner
49
84
  requirement: !ruby/object:Gem::Requirement
@@ -60,32 +95,74 @@ dependencies:
60
95
  version: '1.5'
61
96
  - !ruby/object:Gem::Dependency
62
97
  name: rake
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rspec-rails
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '3.5'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '3.5'
124
+ - !ruby/object:Gem::Dependency
125
+ name: rubocop
63
126
  requirement: !ruby/object:Gem::Requirement
64
127
  requirements:
65
128
  - - "~>"
66
129
  - !ruby/object:Gem::Version
67
- version: '10.0'
130
+ version: 1.23.0
68
131
  type: :development
69
132
  prerelease: false
70
133
  version_requirements: !ruby/object:Gem::Requirement
71
134
  requirements:
72
135
  - - "~>"
73
136
  - !ruby/object:Gem::Version
74
- version: '10.0'
137
+ version: 1.23.0
75
138
  - !ruby/object:Gem::Dependency
76
- name: rspec-rails
139
+ name: rubocop-rails
77
140
  requirement: !ruby/object:Gem::Requirement
78
141
  requirements:
79
142
  - - "~>"
80
143
  - !ruby/object:Gem::Version
81
- version: '3.5'
144
+ version: 2.12.0
82
145
  type: :development
83
146
  prerelease: false
84
147
  version_requirements: !ruby/object:Gem::Requirement
85
148
  requirements:
86
149
  - - "~>"
87
150
  - !ruby/object:Gem::Version
88
- version: '3.5'
151
+ version: 2.12.0
152
+ - !ruby/object:Gem::Dependency
153
+ name: rubocop-rspec
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 2.6.0
159
+ type: :development
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 2.6.0
89
166
  - !ruby/object:Gem::Dependency
90
167
  name: sqlite3
91
168
  requirement: !ruby/object:Gem::Requirement
@@ -104,37 +181,44 @@ description: "\n This is a ruby gem that provides drop in replacement for acts_
104
181
  but makes use of SQL recursive statement. Be sure to have a DBMS that supports recursive
105
182
  queries when using this gem (e.g. PostgreSQL or SQLite). "
106
183
  email:
107
- - wolfgang.wedelich@1und1.de
184
+ - wolfgang.wedelich@ionos.com
185
+ - 14mRh4X0r@gmail.com
108
186
  executables: []
109
187
  extensions: []
110
188
  extra_rdoc_files: []
111
189
  files:
190
+ - ".github/workflows/ci.yml"
191
+ - ".github/workflows/lint.yml"
192
+ - ".github/workflows/rubygem.yml"
112
193
  - ".gitignore"
113
194
  - ".rspec"
114
195
  - ".rubocop.yml"
115
196
  - ".rubocop_todo.yml"
197
+ - Appraisals
116
198
  - CHANGELOG.md
117
199
  - Gemfile
118
200
  - LICENSE.txt
119
201
  - README.md
120
202
  - Rakefile
121
203
  - acts_as_recursive_tree.gemspec
204
+ - gemfiles/ar_52.gemfile
205
+ - gemfiles/ar_60.gemfile
206
+ - gemfiles/ar_61.gemfile
207
+ - gemfiles/ar_70.gemfile
122
208
  - lib/acts_as_recursive_tree.rb
123
209
  - lib/acts_as_recursive_tree/acts_macro.rb
124
210
  - lib/acts_as_recursive_tree/associations.rb
125
- - lib/acts_as_recursive_tree/builders.rb
126
211
  - lib/acts_as_recursive_tree/builders/ancestors.rb
127
212
  - lib/acts_as_recursive_tree/builders/descendants.rb
128
213
  - lib/acts_as_recursive_tree/builders/leaves.rb
129
214
  - lib/acts_as_recursive_tree/builders/relation_builder.rb
130
- - lib/acts_as_recursive_tree/builders/strategy.rb
131
- - lib/acts_as_recursive_tree/builders/strategy/ancestor.rb
132
- - lib/acts_as_recursive_tree/builders/strategy/descendant.rb
133
- - lib/acts_as_recursive_tree/builders/strategy/join.rb
134
- - lib/acts_as_recursive_tree/builders/strategy/subselect.rb
215
+ - lib/acts_as_recursive_tree/builders/strategies.rb
216
+ - lib/acts_as_recursive_tree/builders/strategies/ancestor.rb
217
+ - lib/acts_as_recursive_tree/builders/strategies/descendant.rb
218
+ - lib/acts_as_recursive_tree/builders/strategies/join.rb
219
+ - lib/acts_as_recursive_tree/builders/strategies/subselect.rb
135
220
  - lib/acts_as_recursive_tree/config.rb
136
221
  - lib/acts_as_recursive_tree/model.rb
137
- - lib/acts_as_recursive_tree/options.rb
138
222
  - lib/acts_as_recursive_tree/options/depth_condition.rb
139
223
  - lib/acts_as_recursive_tree/options/query_options.rb
140
224
  - lib/acts_as_recursive_tree/options/values.rb
@@ -154,7 +238,9 @@ files:
154
238
  homepage: https://github.com/1and1/acts_as_recursive_tree
155
239
  licenses:
156
240
  - MIT
157
- metadata: {}
241
+ metadata:
242
+ bug_tracker_uri: https://github.com/1and1/acts_as_recursive_tree/issues
243
+ changelog_uri: https://github.com/1and1/acts_as_recursive_tree/blob/main/CHANGELOG.md
158
244
  post_install_message:
159
245
  rdoc_options: []
160
246
  require_paths:
@@ -163,15 +249,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
249
  requirements:
164
250
  - - ">="
165
251
  - !ruby/object:Gem::Version
166
- version: 2.0.0
252
+ version: 2.5.0
167
253
  required_rubygems_version: !ruby/object:Gem::Requirement
168
254
  requirements:
169
255
  - - ">="
170
256
  - !ruby/object:Gem::Version
171
257
  version: '0'
172
258
  requirements: []
173
- rubyforge_project:
174
- rubygems_version: 2.7.6
259
+ rubygems_version: 3.1.6
175
260
  signing_key:
176
261
  specification_version: 4
177
262
  summary: Drop in replacement for acts_as_tree but using recursive queries
@@ -1,14 +0,0 @@
1
- module ActsAsRecursiveTree
2
- module Builders
3
- extend ActiveSupport::Autoload
4
-
5
- autoload :Values
6
- autoload :DepthCondition
7
- autoload :QueryOptions
8
- autoload :Strategy
9
- autoload :RelationBuilder
10
- autoload :Descendants
11
- autoload :Ancestors
12
- autoload :Leaves
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- module ActsAsRecursiveTree
2
- module Options
3
- extend ActiveSupport::Autoload
4
-
5
- autoload :Values
6
- autoload :DepthCondition
7
- autoload :QueryOptions
8
- end
9
- end