activerecord-hierarchical_query 1.2.2 → 1.4.0

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: faba4aa6eac892d19c4bc1dd40e0144722d17a2147b8fa895876731e2f34db50
4
- data.tar.gz: 7831c15020830d2c2b913357bac349509511998019042d4c0cadf79f1bd6d8bb
3
+ metadata.gz: dbfe38ba545752409503f8e35bac2dc57e10f01b3b52692b305925727095c371
4
+ data.tar.gz: b8cf2743d2a55b857c685be2adfd16ad4b881dae39029f173aaf60dcb7214726
5
5
  SHA512:
6
- metadata.gz: f55aa4774dec03dbded8f0a3d8c7d416ad10fe4b4046fa46b28424ece88eb343fd5c8fe3e19590f1bd3228f94d06f84c54796b79e9739ee82bca0b4cf939dbba
7
- data.tar.gz: 2e612eb0fcbd96396eb7da96ca7dcb4053f8d5227bcd5ccaea7618e4d44c7bd339bbf23c740a8a3250a10df9b588294fa444f7cadec47405d73de9849f9c9424
6
+ metadata.gz: 54dc3bc71efd8b69918175ca63ccf73161651f326da7c827b6a4dc6c1fcc1a19c95645e8bcddd6bb61cbb7959859ecf79da2bed72a69548aa560f595ad7fbfc6
7
+ data.tar.gz: ac232b4cb3a9ed883df916b57f51c48548e12b651d14524615a5dc3559c9727c358521bda0427c980a96175d6a2985a83c0d41411e24a05e37afcc6832b6bbd8
data/README.md CHANGED
@@ -13,21 +13,13 @@ in hierarchical order using hierarchical query builder.
13
13
 
14
14
  ## Requirements
15
15
 
16
- - ActiveRecord >= 5.0, < 6.1
16
+ - ActiveRecord >= 5.0, < 7.1
17
17
  - PostgreSQL >= 8.4
18
- - Postgres Gem >= 0.21, < 1.2
18
+ - Postgres Gem >= 0.21, < 1.3
19
19
 
20
20
  Note that though PostgresSQL 8.4 and up should work, this library
21
21
  is tested on PostgresSQL 10.5.
22
22
 
23
- ### Rails Version
24
-
25
- **Rails 4 support has ended.**
26
-
27
- If you have trouble with Rails 5.1 or 5.0, try upgrading to Rails 5.2
28
- first. Rails 6 should work, but please report issues immediately as
29
- support is recent.
30
-
31
23
  ## In a nutshell
32
24
 
33
25
  ### Traverse trees
@@ -1,5 +1,3 @@
1
- require 'arel/visitors/depth_first'
2
-
3
1
  module ActiveRecord
4
2
  module HierarchicalQuery
5
3
  module CTE
@@ -18,7 +16,23 @@ module ActiveRecord
18
16
 
19
17
  private
20
18
  def connect_by_columns
21
- @query.join_conditions.grep(Arel::Attributes::Attribute) { |column| column.name.to_s }
19
+ columns = []
20
+ traverse(@query.join_conditions) do |node|
21
+ columns << node.name.to_s if node.is_a?(Arel::Attributes::Attribute)
22
+ end
23
+ columns
24
+ end
25
+
26
+ def traverse(ast, &blck)
27
+ if ast && ast.respond_to?(:left) && ast.left
28
+ traverse(ast.left, &blck)
29
+ end
30
+
31
+ if ast && ast.respond_to?(:right) && ast.right
32
+ traverse(ast.right, &blck)
33
+ end
34
+
35
+ yield ast
22
36
  end
23
37
  end
24
38
  end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module HierarchicalQuery
3
- VERSION = '1.2.2'
3
+ VERSION = '1.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-hierarchical_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexei Mikhailov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-11-06 00:00:00.000000000 Z
12
+ date: 2022-01-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
@@ -20,7 +20,7 @@ dependencies:
20
20
  version: '5.0'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '6.1'
23
+ version: '6.2'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +30,7 @@ dependencies:
30
30
  version: '5.0'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '6.1'
33
+ version: '6.2'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: pg
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '0.21'
41
41
  - - "<"
42
42
  - !ruby/object:Gem::Version
43
- version: '1.2'
43
+ version: '1.3'
44
44
  type: :runtime
45
45
  prerelease: false
46
46
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,19 +50,19 @@ dependencies:
50
50
  version: '0.21'
51
51
  - - "<"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.2'
53
+ version: '1.3'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: bundler
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '1.16'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: '1.16'
68
68
  - !ruby/object:Gem::Dependency
@@ -85,14 +85,14 @@ dependencies:
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '3.8'
88
+ version: '3.10'
89
89
  type: :development
90
90
  prerelease: false
91
91
  version_requirements: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '3.8'
95
+ version: '3.10'
96
96
  - !ruby/object:Gem::Dependency
97
97
  name: database_cleaner
98
98
  requirement: !ruby/object:Gem::Requirement
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  requirements: []
172
- rubygems_version: 3.0.6
172
+ rubygems_version: 3.2.22
173
173
  signing_key:
174
174
  specification_version: 4
175
175
  summary: Recursively traverse trees using a single SQL query