arel_extensions 2.0.13 → 2.0.14

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 (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