simple_nested_set 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
@@ -122,49 +122,21 @@ module SimpleNestedSet
122
122
  end
123
123
 
124
124
  def denormalize_level_query
125
- # query = arel_table.as(:l)
126
- # query = query.project('count(id)').
127
- # where(query[:lft].lt(arel_table[:lft])).
128
- # where(query[:rgt].gt(arel_table[:rgt])).
129
- # where(where_clauses.map { |clause| clause.gsub(table_name, 'l') })
130
- # "level = (#{query.to_sql})"
131
-
132
- scope = where_clauses.map { |clause| clause.gsub(table_name, 'l') }.join(' AND ')
133
- scope = "AND #{scope}" unless scope.empty?
134
-
135
- %(
136
- level = (
137
- SELECT COUNT("l"."id")
138
- FROM #{table_name} AS l
139
- WHERE
140
- l.lft < #{table_name}.lft AND
141
- l.rgt > #{table_name}.rgt
142
- #{scope}
143
- )
144
- )
125
+ aliaz = arel_table.as(:l)
126
+ query = aliaz.project(aliaz[:id].count).
127
+ where(aliaz[:lft].lt(arel_table[:lft])).
128
+ where(aliaz[:rgt].gt(arel_table[:rgt]))
129
+ query = [query.to_sql] + where_clauses.map { |clause| clause.gsub(arel_table.name, 'l') }
130
+ "level = (#{query.join(' AND ')})"
145
131
  end
146
132
 
147
133
  def denormalize_path_query
148
- # query = arel_table.as(:l)
149
- # query = query.project(group_concat(db_adapter, :slug)).
150
- # where(query[:lft].lteq(arel_table[:lft])).
151
- # where(query[:rgt].gteq(arel_table[:rgt])).
152
- # where(where_clauses.map { |clause| clause.gsub(table_name, 'l') })
153
- # "path = (#{query.to_sql})"
154
-
155
- scope = where_clauses.map { |clause| clause.gsub(table_name, 'l') }.join(' AND ')
156
- scope = "AND #{scope}" unless scope.empty?
157
-
158
- %(
159
- path = (
160
- SELECT #{group_concat(db_adapter, :slug)}
161
- FROM #{table_name} AS l
162
- WHERE
163
- l.lft <= #{table_name}.lft AND
164
- l.rgt >= #{table_name}.rgt
165
- #{scope}
166
- )
167
- )
134
+ aliaz = arel_table.as(:l)
135
+ query = aliaz.project(group_concat(db_adapter, :slug)).
136
+ where(aliaz[:lft].lteq(arel_table[:lft])).
137
+ where(aliaz[:rgt].gteq(arel_table[:rgt]))
138
+ query = [query.to_sql] + where_clauses.map { |clause| clause.gsub(arel_table.name, 'l') }
139
+ "path = (#{query.join(' AND ')})"
168
140
  end
169
141
 
170
142
  def db_adapter
@@ -1,3 +1,3 @@
1
1
  module SimpleNestedSet
2
- VERSION = "0.0.23"
2
+ VERSION = "0.0.24"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_nested_set
3
3
  version: !ruby/object:Gem::Version
4
- hash: 49
4
+ hash: 47
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 23
10
- version: 0.0.23
9
+ - 24
10
+ version: 0.0.24
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sven Fuchs