arel_extensions 2.0.13 → 2.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +10 -10
  3. data/Rakefile +4 -4
  4. data/gemfiles/rails3.gemfile +9 -9
  5. data/gemfiles/rails4.gemfile +13 -13
  6. data/gemfiles/rails5_0.gemfile +13 -13
  7. data/gemfiles/rails5_1_4.gemfile +13 -13
  8. data/gemfiles/rails5_2.gemfile +13 -13
  9. data/gemfiles/rails6.gemfile +13 -13
  10. data/lib/arel_extensions.rb +2 -2
  11. data/lib/arel_extensions/attributes.rb +0 -0
  12. data/lib/arel_extensions/boolean_functions.rb +3 -7
  13. data/lib/arel_extensions/common_sql_functions.rb +0 -2
  14. data/lib/arel_extensions/comparators.rb +11 -14
  15. data/lib/arel_extensions/date_duration.rb +4 -5
  16. data/lib/arel_extensions/insert_manager.rb +16 -17
  17. data/lib/arel_extensions/math.rb +8 -9
  18. data/lib/arel_extensions/math_functions.rb +15 -17
  19. data/lib/arel_extensions/nodes/abs.rb +0 -1
  20. data/lib/arel_extensions/nodes/aggregate_function.rb +0 -1
  21. data/lib/arel_extensions/nodes/blank.rb +0 -1
  22. data/lib/arel_extensions/nodes/case.rb +3 -4
  23. data/lib/arel_extensions/nodes/cast.rb +0 -1
  24. data/lib/arel_extensions/nodes/ceil.rb +1 -1
  25. data/lib/arel_extensions/nodes/change_case.rb +0 -0
  26. data/lib/arel_extensions/nodes/coalesce.rb +0 -1
  27. data/lib/arel_extensions/nodes/collate.rb +0 -1
  28. data/lib/arel_extensions/nodes/concat.rb +1 -3
  29. data/lib/arel_extensions/nodes/date_diff.rb +4 -5
  30. data/lib/arel_extensions/nodes/duration.rb +0 -1
  31. data/lib/arel_extensions/nodes/find_in_set.rb +0 -1
  32. data/lib/arel_extensions/nodes/floor.rb +1 -1
  33. data/lib/arel_extensions/nodes/format.rb +1 -0
  34. data/lib/arel_extensions/nodes/formatted_number.rb +0 -1
  35. data/lib/arel_extensions/nodes/function.rb +2 -3
  36. data/lib/arel_extensions/nodes/is_null.rb +0 -0
  37. data/lib/arel_extensions/nodes/json.rb +0 -6
  38. data/lib/arel_extensions/nodes/length.rb +0 -1
  39. data/lib/arel_extensions/nodes/levenshtein_distance.rb +0 -0
  40. data/lib/arel_extensions/nodes/locate.rb +0 -1
  41. data/lib/arel_extensions/nodes/log10.rb +1 -2
  42. data/lib/arel_extensions/nodes/matches.rb +0 -2
  43. data/lib/arel_extensions/nodes/md5.rb +0 -1
  44. data/lib/arel_extensions/nodes/power.rb +0 -1
  45. data/lib/arel_extensions/nodes/rand.rb +0 -1
  46. data/lib/arel_extensions/nodes/repeat.rb +0 -2
  47. data/lib/arel_extensions/nodes/replace.rb +0 -2
  48. data/lib/arel_extensions/nodes/round.rb +0 -1
  49. data/lib/arel_extensions/nodes/soundex.rb +0 -1
  50. data/lib/arel_extensions/nodes/std.rb +0 -1
  51. data/lib/arel_extensions/nodes/substring.rb +0 -1
  52. data/lib/arel_extensions/nodes/sum.rb +0 -0
  53. data/lib/arel_extensions/nodes/then.rb +0 -0
  54. data/lib/arel_extensions/nodes/trim.rb +0 -2
  55. data/lib/arel_extensions/nodes/union.rb +0 -2
  56. data/lib/arel_extensions/nodes/union_all.rb +0 -2
  57. data/lib/arel_extensions/nodes/wday.rb +0 -4
  58. data/lib/arel_extensions/null_functions.rb +3 -5
  59. data/lib/arel_extensions/predications.rb +2 -3
  60. data/lib/arel_extensions/railtie.rb +5 -5
  61. data/lib/arel_extensions/set_functions.rb +0 -2
  62. data/lib/arel_extensions/string_functions.rb +21 -22
  63. data/lib/arel_extensions/tasks.rb +1 -1
  64. data/lib/arel_extensions/version.rb +1 -1
  65. data/lib/arel_extensions/visitors.rb +9 -7
  66. data/lib/arel_extensions/visitors/convert_format.rb +37 -0
  67. data/lib/arel_extensions/visitors/ibm_db.rb +4 -11
  68. data/lib/arel_extensions/visitors/mssql.rb +48 -44
  69. data/lib/arel_extensions/visitors/mysql.rb +63 -65
  70. data/lib/arel_extensions/visitors/oracle.rb +48 -55
  71. data/lib/arel_extensions/visitors/oracle12.rb +2 -3
  72. data/lib/arel_extensions/visitors/postgresql.rb +39 -34
  73. data/lib/arel_extensions/visitors/sqlite.rb +23 -18
  74. data/lib/arel_extensions/visitors/to_sql.rb +42 -44
  75. data/test/arelx_test_helper.rb +0 -2
  76. data/test/real_db_test.rb +26 -41
  77. data/test/support/fake_record.rb +1 -1
  78. data/test/test_comparators.rb +0 -4
  79. data/test/visitors/test_bulk_insert_oracle.rb +0 -1
  80. data/test/visitors/test_bulk_insert_sqlite.rb +0 -2
  81. data/test/visitors/test_oracle.rb +1 -2
  82. data/test/visitors/test_to_sql.rb +16 -25
  83. data/test/with_ar/all_agnostic_test.rb +134 -139
  84. data/test/with_ar/insert_agnostic_test.rb +0 -2
  85. data/test/with_ar/test_bulk_sqlite.rb +0 -4
  86. data/test/with_ar/test_math_sqlite.rb +4 -8
  87. data/test/with_ar/test_string_mysql.rb +1 -5
  88. data/test/with_ar/test_string_sqlite.rb +1 -5
  89. data/version_v1.rb +1 -1
  90. data/version_v2.rb +1 -1
  91. metadata +3 -2
@@ -1,16 +1,23 @@
1
1
  module ArelExtensions
2
2
  module Visitors
3
3
  class Arel::Visitors::SQLite
4
- Arel::Visitors::SQLite::DATE_MAPPING = {'d' => '%d', 'm' => '%m', 'w' => '%W', 'y' => '%Y', 'wd' => '%w', 'M' => '%M', 'h' => '%H', 'mn' => '%M', 's' => '%S'}
5
- Arel::Visitors::SQLite::DATE_FORMAT_DIRECTIVES = { # ISO C / POSIX
4
+ DATE_MAPPING = {
5
+ 'd' => '%d', 'm' => '%m', 'w' => '%W', 'y' => '%Y', 'wd' => '%w', 'M' => '%M',
6
+ 'h' => '%H', 'mn' => '%M', 's' => '%S'
7
+ }.freeze
8
+
9
+ DATE_FORMAT_DIRECTIVES = { # ISO C / POSIX
6
10
  '%Y' => '%Y', '%C' => '', '%y' => '%y', '%m' => '%m', '%B' => '%M', '%b' => '%b', '%^b' => '%b', # year, month
7
11
  '%d' => '%d', '%e' => '%e', '%j' => '%j', '%w' => '%w', '%A' => '%W', # day, weekday
8
12
  '%H' => '%H', '%k' => '%k', '%I' => '%I', '%l' => '%l', '%P' => '%p', '%p' => '%p', # hours
9
13
  '%M' => '%M', '%S' => '%S', '%L' => '', '%N' => '%f', '%z' => '' # seconds, subseconds
10
- }
11
- Arel::Visitors::SQLite::NUMBER_COMMA_MAPPING = { 'fr_FR' => {',' => ' ','.' =>','} }
14
+ }.freeze
15
+
16
+ NUMBER_COMMA_MAPPING = {
17
+ 'fr_FR' => {',' => ' ', '.' =>','}
18
+ }.freeze
12
19
 
13
- #String functions
20
+ # String functions
14
21
  def visit_ArelExtensions_Nodes_IMatches o, collector # insensitive on ASCII
15
22
  collector = visit o.left.ci_collate, collector
16
23
  collector << ' LIKE '
@@ -73,7 +80,6 @@ module ArelExtensions
73
80
  collector
74
81
  end
75
82
 
76
-
77
83
  def visit_ArelExtensions_Nodes_IDoesNotMatch o, collector
78
84
  collector = visit o.left.lower, collector
79
85
  collector << ' NOT LIKE '
@@ -90,14 +96,15 @@ module ArelExtensions
90
96
  def visit_ArelExtensions_Nodes_DateAdd o, collector
91
97
  collector << "date("
92
98
  collector = visit o.expressions.first, collector
93
- collector << Arel::Visitors::SQLite::COMMA
99
+ collector << COMMA
94
100
  collector = visit o.sqlite_value, collector
95
101
  collector << ")"
96
102
  collector
97
103
  end
98
104
 
99
105
  def visit_ArelExtensions_Nodes_DateDiff o, collector
100
- if o.left_node_type == :ruby_time || o.left_node_type == :datetime || o.left_node_type == :time
106
+ case o.left_node_type
107
+ when :ruby_time, :datetime, :time
101
108
  collector << "strftime('%s', "
102
109
  collector = visit o.left, collector
103
110
  collector << ") - strftime('%s', "
@@ -113,17 +120,16 @@ module ArelExtensions
113
120
  end
114
121
 
115
122
  def visit_ArelExtensions_Nodes_Duration o, collector
116
- collector << "strftime('#{Arel::Visitors::SQLite::DATE_MAPPING[o.left]}'#{Arel::Visitors::SQLite::COMMA}"
123
+ collector << "strftime('#{DATE_MAPPING[o.left]}'#{COMMA}"
117
124
  collector = visit o.right, collector
118
125
  collector << ")"
119
126
  collector
120
127
  end
121
128
 
122
-
123
129
  def visit_ArelExtensions_Nodes_Locate o, collector
124
130
  collector << "instr("
125
131
  collector = visit o.expr, collector
126
- collector << Arel::Visitors::SQLite::COMMA
132
+ collector << COMMA
127
133
  collector = visit o.right, collector
128
134
  collector << ")"
129
135
  collector
@@ -142,7 +148,7 @@ module ArelExtensions
142
148
  def visit_ArelExtensions_Nodes_Substring o, collector
143
149
  collector << "SUBSTR("
144
150
  o.expressions.each_with_index { |arg, i|
145
- collector << Arel::Visitors::SQLite::COMMA unless i == 0
151
+ collector << COMMA if i != 0
146
152
  collector = visit arg, collector
147
153
  }
148
154
  collector << ")"
@@ -165,7 +171,7 @@ module ArelExtensions
165
171
  collector << "RANDOM("
166
172
  if o.left != nil && o.right != nil
167
173
  collector = visit o.left, collector
168
- collector << Arel::Visitors::SQLite::COMMA
174
+ collector << COMMA
169
175
  collector = visit o.right, collector
170
176
  end
171
177
  collector << ")"
@@ -247,7 +253,7 @@ module ArelExtensions
247
253
  collector << quote(attr.name)
248
254
  end
249
255
  end
250
- collector << Arel::Visitors::SQLite::COMMA unless i == len
256
+ collector << COMMA unless i == len
251
257
  }
252
258
  collector << ' UNION ALL ' unless idx == o.left.length - 1
253
259
  end
@@ -275,7 +281,7 @@ module ArelExtensions
275
281
  collector << quote(attr.name)
276
282
  end
277
283
  end
278
- collector << Arel::Visitors::SQLite::COMMA unless i == len
284
+ collector << COMMA unless i == len
279
285
  }
280
286
  collector << ' UNION ALL ' unless idx == o.left.length - 1
281
287
  end
@@ -364,7 +370,7 @@ module ArelExtensions
364
370
  collector
365
371
  end
366
372
 
367
- alias_method :old_visit_Arel_Nodes_As, :visit_Arel_Nodes_As
373
+ alias_method(:old_visit_Arel_Nodes_As, :visit_Arel_Nodes_As) rescue nil
368
374
  def visit_Arel_Nodes_As o, collector
369
375
  if o.left.is_a?(Arel::Nodes::Binary)
370
376
  collector << '('
@@ -381,14 +387,13 @@ module ArelExtensions
381
387
 
382
388
  def visit_ArelExtensions_Nodes_FormattedNumber o, collector
383
389
  format = Arel::Nodes::NamedFunction.new('printf',[Arel::Nodes.build_quoted(o.original_string),o.left])
384
- locale_map = Arel::Visitors::SQLite::NUMBER_COMMA_MAPPING[o.locale]
390
+ locale_map = NUMBER_COMMA_MAPPING[o.locale]
385
391
  if locale_map
386
392
  format = format.replace(',',locale_map[',']).replace('.',locale_map['.'])
387
393
  end
388
394
  visit format, collector
389
395
  collector
390
396
  end
391
-
392
397
  end
393
398
  end
394
399
  end
@@ -1,13 +1,13 @@
1
1
  module ArelExtensions
2
2
  module Visitors
3
3
  class Arel::Visitors::ToSql
4
- Arel::Visitors::ToSql::COMMA = ', ' unless defined?(Arel::Visitors::ToSql::COMMA)
4
+ COMMA = ', ' unless defined?(COMMA)
5
5
 
6
6
  # Math Functions
7
7
  def visit_ArelExtensions_Nodes_Abs o, collector
8
8
  collector << "ABS("
9
9
  o.expressions.each_with_index { |arg, i|
10
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
10
+ collector << COMMA if i != 0
11
11
  collector = visit arg, collector
12
12
  }
13
13
  collector << ")"
@@ -17,7 +17,7 @@ module ArelExtensions
17
17
  def visit_ArelExtensions_Nodes_Ceil o, collector
18
18
  collector << "CEIL("
19
19
  o.expressions.each_with_index { |arg, i|
20
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
20
+ collector << COMMA if i != 0
21
21
  collector = visit arg, collector
22
22
  }
23
23
  collector << ")"
@@ -27,7 +27,7 @@ module ArelExtensions
27
27
  def visit_ArelExtensions_Nodes_Floor o, collector
28
28
  collector << "FLOOR("
29
29
  o.expressions.each_with_index { |arg, i|
30
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
30
+ collector << COMMA if i != 0
31
31
  collector = visit arg, collector
32
32
  }
33
33
  collector << ")"
@@ -37,7 +37,7 @@ module ArelExtensions
37
37
  def visit_ArelExtensions_Nodes_Rand o, collector
38
38
  collector << "RAND("
39
39
  o.expressions.each_with_index { |arg, i|
40
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
40
+ collector << COMMA if i != 0
41
41
  collector = visit arg, collector
42
42
  }
43
43
  collector << ")"
@@ -47,7 +47,7 @@ module ArelExtensions
47
47
  def visit_ArelExtensions_Nodes_Round o, collector
48
48
  collector << "ROUND("
49
49
  o.expressions.each_with_index { |arg, i|
50
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
50
+ collector << COMMA if i != 0
51
51
  collector = visit arg, collector
52
52
  }
53
53
  collector << ")"
@@ -64,7 +64,7 @@ module ArelExtensions
64
64
  def visit_ArelExtensions_Nodes_Power o, collector
65
65
  collector << "POW("
66
66
  o.expressions.each_with_index { |arg, i|
67
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
67
+ collector << COMMA if i != 0
68
68
  collector = visit arg, collector
69
69
  }
70
70
  collector << ")"
@@ -81,9 +81,9 @@ module ArelExtensions
81
81
  # String functions
82
82
  def visit_ArelExtensions_Nodes_Concat o, collector
83
83
  collector << "CONCAT("
84
- o.expressions.each_with_index { |arg, i|
85
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
86
- collector = visit arg, collector
84
+ o.expressions.each_with_index { |arg, i|
85
+ collector << COMMA if i != 0
86
+ collector = visit arg, collector
87
87
  }
88
88
  collector << ")"
89
89
  collector
@@ -93,7 +93,7 @@ module ArelExtensions
93
93
  collector << "GROUP_CONCAT("
94
94
  collector = visit o.left, collector
95
95
  if o.separator && o.separator != 'NULL'
96
- collector << Arel::Visitors::ToSql::COMMA
96
+ collector << COMMA
97
97
  collector = visit o.separator, collector
98
98
  end
99
99
  collector << ")"
@@ -117,7 +117,7 @@ module ArelExtensions
117
117
  def visit_ArelExtensions_Nodes_Locate o, collector
118
118
  collector << "LOCATE("
119
119
  collector = visit o.right, collector
120
- collector << Arel::Visitors::ToSql::COMMA
120
+ collector << COMMA
121
121
  collector = visit o.left, collector
122
122
  collector << ")"
123
123
  collector
@@ -126,7 +126,7 @@ module ArelExtensions
126
126
  def visit_ArelExtensions_Nodes_Substring o, collector
127
127
  collector << "SUBSTRING("
128
128
  o.expressions.each_with_index { |arg, i|
129
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
129
+ collector << COMMA if i != 0
130
130
  collector = visit arg, collector
131
131
  }
132
132
  collector << ")"
@@ -136,9 +136,9 @@ module ArelExtensions
136
136
  def visit_ArelExtensions_Nodes_Replace o, collector
137
137
  collector << "REPLACE("
138
138
  visit o.left, collector
139
- collector << Arel::Visitors::ToSql::COMMA
139
+ collector << COMMA
140
140
  visit o.pattern, collector
141
- collector << Arel::Visitors::ToSql::COMMA
141
+ collector << COMMA
142
142
  visit o.substitute, collector
143
143
  collector << ")"
144
144
  collector
@@ -147,9 +147,9 @@ module ArelExtensions
147
147
  def visit_ArelExtensions_Nodes_RegexpReplace o, collector
148
148
  collector << "REGEXP_REPLACE("
149
149
  visit o.left, collector
150
- collector << Arel::Visitors::ToSql::COMMA
150
+ collector << COMMA
151
151
  visit Arel::Nodes.build_quoted(o.pattern.to_s), collector
152
- collector << Arel::Visitors::ToSql::COMMA
152
+ collector << COMMA
153
153
  visit o.substitute, collector
154
154
  collector << ")"
155
155
  collector
@@ -158,7 +158,7 @@ module ArelExtensions
158
158
  def visit_ArelExtensions_Nodes_Repeat o, collector
159
159
  collector << "REPEAT("
160
160
  o.expressions.each_with_index { |arg, i|
161
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
161
+ collector << COMMA if i != 0
162
162
  collector = visit arg, collector
163
163
  }
164
164
  collector << ")"
@@ -168,7 +168,7 @@ module ArelExtensions
168
168
  def visit_ArelExtensions_Nodes_FindInSet o, collector
169
169
  collector << "FIND_IN_SET("
170
170
  o.expressions.each_with_index { |arg, i|
171
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
171
+ collector << COMMA if i != 0
172
172
  collector = visit arg, collector
173
173
  }
174
174
  collector << ")"
@@ -178,7 +178,7 @@ module ArelExtensions
178
178
  def visit_ArelExtensions_Nodes_Soundex o, collector
179
179
  collector << "SOUNDEX("
180
180
  o.expressions.each_with_index { |arg, i|
181
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
181
+ collector << COMMA if i != 0
182
182
  collector = visit arg, collector
183
183
  }
184
184
  collector << ")"
@@ -188,7 +188,7 @@ module ArelExtensions
188
188
  def visit_ArelExtensions_Nodes_Downcase o, collector
189
189
  collector << "LOWER("
190
190
  o.expressions.each_with_index { |arg, i|
191
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
191
+ collector << COMMA if i != 0
192
192
  collector = visit arg, collector
193
193
  }
194
194
  collector << ")"
@@ -198,7 +198,7 @@ module ArelExtensions
198
198
  def visit_ArelExtensions_Nodes_Upcase o, collector
199
199
  collector << "UPPER("
200
200
  o.expressions.each_with_index { |arg, i|
201
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
201
+ collector << COMMA if i != 0
202
202
  collector = visit arg, collector
203
203
  }
204
204
  collector << ")"
@@ -208,7 +208,7 @@ module ArelExtensions
208
208
  def visit_ArelExtensions_Nodes_Trim o, collector
209
209
  collector << "TRIM("
210
210
  o.expressions.each_with_index { |arg, i|
211
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
211
+ collector << COMMA if i != 0
212
212
  collector = visit arg, collector
213
213
  }
214
214
  collector << ")"
@@ -218,7 +218,7 @@ module ArelExtensions
218
218
  def visit_ArelExtensions_Nodes_Ltrim o, collector
219
219
  collector << "LTRIM("
220
220
  o.expressions.each_with_index { |arg, i|
221
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
221
+ collector << COMMA if i != 0
222
222
  collector = visit arg, collector
223
223
  }
224
224
  collector << ")"
@@ -228,7 +228,7 @@ module ArelExtensions
228
228
  def visit_ArelExtensions_Nodes_Rtrim o, collector
229
229
  collector << "RTRIM("
230
230
  o.expressions.each_with_index { |arg, i|
231
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
231
+ collector << COMMA if i != 0
232
232
  collector = visit arg, collector
233
233
  }
234
234
  collector << ")"
@@ -236,21 +236,20 @@ module ArelExtensions
236
236
  end
237
237
 
238
238
  def visit_ArelExtensions_Nodes_Blank o, collector
239
- #visit o.left.coalesce('').trim.length.eq(0), collector
239
+ # visit o.left.coalesce('').trim.length.eq(0), collector
240
240
  collector << 'LENGTH(TRIM(COALESCE('
241
241
  collector = visit o.expr, collector
242
- collector << Arel::Visitors::ToSql::COMMA
242
+ collector << COMMA
243
243
  collector = visit Arel::Nodes.build_quoted(''), collector
244
244
  collector << "))) = 0"
245
245
  collector
246
246
  end
247
247
 
248
-
249
248
  def visit_ArelExtensions_Nodes_NotBlank o, collector
250
- #visit o.left.coalesce('').trim.length.gt(0), collector
249
+ # visit o.left.coalesce('').trim.length.gt(0), collector
251
250
  collector << 'LENGTH(TRIM(COALESCE('
252
251
  collector = visit o.expr, collector
253
- collector << Arel::Visitors::ToSql::COMMA
252
+ collector << COMMA
254
253
  collector = visit Arel::Nodes.build_quoted(''), collector
255
254
  collector << "))) > 0"
256
255
  collector
@@ -261,13 +260,13 @@ module ArelExtensions
261
260
  when :date, :datetime, :time
262
261
  collector << "STRFTIME("
263
262
  collector = visit o.right, collector
264
- collector << Arel::Visitors::ToSql::COMMA
263
+ collector << COMMA
265
264
  collector = visit o.left, collector
266
265
  collector << ")"
267
266
  when :integer, :float, :decimal
268
267
  collector << "FORMAT("
269
268
  collector = visit o.left, collector
270
- collector << Arel::Visitors::ToSql::COMMA
269
+ collector << COMMA
271
270
  collector = visit o.right, collector
272
271
  collector << ")"
273
272
  else
@@ -276,7 +275,7 @@ module ArelExtensions
276
275
  collector
277
276
  end
278
277
 
279
- #comparators
278
+ # comparators
280
279
 
281
280
  def visit_ArelExtensions_Nodes_Cast o, collector
282
281
  collector << "CAST("
@@ -308,7 +307,7 @@ module ArelExtensions
308
307
  def visit_ArelExtensions_Nodes_Coalesce o, collector
309
308
  collector << "COALESCE("
310
309
  o.expressions.each_with_index { |arg, i|
311
- collector << Arel::Visitors::ToSql::COMMA unless i == 0
310
+ collector << COMMA if i != 0
312
311
  collector = visit arg, collector
313
312
  }
314
313
  collector << ")"
@@ -322,7 +321,7 @@ module ArelExtensions
322
321
  'DATEDIFF('
323
322
  end
324
323
  collector = visit o.left, collector
325
- collector << Arel::Visitors::ToSql::COMMA
324
+ collector << COMMA
326
325
  collector = visit o.right, collector
327
326
  collector << ")"
328
327
  collector
@@ -331,13 +330,13 @@ module ArelExtensions
331
330
  def visit_ArelExtensions_Nodes_DateSub o, collector
332
331
  collector << "DATE_SUB("
333
332
  collector = visit o.left, collector
334
- collector << Arel::Visitors::ToSql::COMMA
333
+ collector << COMMA
335
334
  collector = visit o.right, collector
336
335
  collector << ")"
337
336
  collector
338
337
  end
339
338
 
340
- # override
339
+ # override
341
340
  remove_method(:visit_Arel_Nodes_As) rescue nil # if Arel::Visitors::ToSql.method_defined?(:visit_Arel_Nodes_As)
342
341
  def visit_Arel_Nodes_As o, collector
343
342
  if o.left.is_a?(Arel::Nodes::Binary)
@@ -418,7 +417,7 @@ module ArelExtensions
418
417
  def visit_ArelExtensions_Nodes_DateAdd o, collector
419
418
  collector << "DATE_ADD("
420
419
  collector = visit o.left, collector
421
- collector << Arel::Visitors::ToSql::COMMA
420
+ collector << COMMA
422
421
  collector = visit o.sqlite_value(o.right), collector
423
422
  collector << ')'
424
423
  collector
@@ -438,7 +437,7 @@ module ArelExtensions
438
437
  else
439
438
  collector << quote(value, attr && column_for(attr)).to_s
440
439
  end
441
- collector << Arel::Visitors::ToSql::COMMA unless i == len
440
+ collector << COMMA unless i == len
442
441
  }
443
442
  collector << (idx == row_nb-1 ? ')' : '), ')
444
443
  end
@@ -460,7 +459,7 @@ module ArelExtensions
460
459
  else
461
460
  collector << (attr && attr.able_to_type_cast? ? quote(attr.type_cast_for_database(value)) : quote(value).to_s)
462
461
  end
463
- collector << Arel::Visitors::ToSql::COMMA unless i == len
462
+ collector << COMMA unless i == len
464
463
  }
465
464
  collector << (idx == row_nb-1 ? ')' : '), ')
466
465
  end
@@ -539,7 +538,7 @@ module ArelExtensions
539
538
  def visit_ArelExtensions_Nodes_LevenshteinDistance o, collector
540
539
  collector << "LEVENSHTEIN_DISTANCE("
541
540
  collector = visit o.left, collector
542
- collector << Arel::Visitors::ToSql::COMMA
541
+ collector << COMMA
543
542
  collector = visit o.right, collector
544
543
  collector << ')'
545
544
  collector
@@ -547,7 +546,7 @@ module ArelExtensions
547
546
 
548
547
  # Boolean logic.
549
548
 
550
- alias_method :old_visit_Arel_Nodes_And, :visit_Arel_Nodes_And
549
+ alias_method(:old_visit_Arel_Nodes_And, :visit_Arel_Nodes_And) rescue nil
551
550
  def visit_Arel_Nodes_And o, collector
552
551
  case o.children.length
553
552
  when 0
@@ -567,7 +566,7 @@ module ArelExtensions
567
566
  collector
568
567
  end
569
568
 
570
- alias_method :old_visit_Arel_Nodes_Or, :visit_Arel_Nodes_Or
569
+ alias_method(:old_visit_Arel_Nodes_Or, :visit_Arel_Nodes_Or) rescue nil
571
570
  def visit_Arel_Nodes_Or o, collector
572
571
  case o.children.length
573
572
  when 0
@@ -656,7 +655,6 @@ module ArelExtensions
656
655
  end
657
656
  collector
658
657
  end
659
-
660
658
  end
661
659
  end
662
660
  end