arel_extensions 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/arel_extensions/nodes/concat.rb +9 -0
- data/lib/arel_extensions/string_functions.rb +1 -6
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors/mysql.rb +2 -4
- data/lib/arel_extensions/visitors/oracle.rb +4 -6
- data/lib/arel_extensions/visitors/postgresql.rb +2 -4
- data/test/with_ar/all_agnostic_test.rb +2 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68ee590a18210a1a5692c9ba7c4caf3c47a11f4e
|
4
|
+
data.tar.gz: a78126c03105531c7e0c25cee082c34c18eb7fdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd66f0377b2c25fe6e18c3ee250e1fc55e699d6a423e43c65fee38749752955e1e3f33ca58f31200d9ed26fcc818da44c2d1f02c7ee11e05c9a7756f5a560f1f
|
7
|
+
data.tar.gz: d7b6f047370c4cc2af72b632adb10678ed70ba9ef2e58e6a1630d1672ed8a3dc562f093a2787cd15611454a92c2be1f94f98b74f877e48bdf49420107129f7a1
|
@@ -108,12 +108,7 @@ module ArelExtensions
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def concat other
|
111
|
-
|
112
|
-
if res.expressions.length == 1
|
113
|
-
res.expressions.first
|
114
|
-
else
|
115
|
-
res
|
116
|
-
end
|
111
|
+
ArelExtensions::Nodes::Concat.new [self, other]
|
117
112
|
end
|
118
113
|
|
119
114
|
def group_concat sep = nil
|
@@ -307,7 +307,7 @@ module ArelExtensions
|
|
307
307
|
end
|
308
308
|
|
309
309
|
def visit_ArelExtensions_Nodes_FormattedNumber o, collector
|
310
|
-
col = o.left
|
310
|
+
col = o.left.coalesce(0)
|
311
311
|
params = o.locale ? [o.precision,Arel::Nodes.build_quoted(o.locale)] : [o.precision]
|
312
312
|
sign = ArelExtensions::Nodes::Case.new.when(col<0).
|
313
313
|
then('-').
|
@@ -339,15 +339,13 @@ module ArelExtensions
|
|
339
339
|
before = (!o.flags.include?('0'))&&(!o.flags.include?('-')) ? repeated_char : ''
|
340
340
|
middle = (o.flags.include?('0'))&&(!o.flags.include?('-')) ? repeated_char : ''
|
341
341
|
after = o.flags.include?('-') ? repeated_char : ''
|
342
|
-
full_number =
|
343
|
-
ArelExtensions::Nodes::Concat.new([
|
342
|
+
full_number = ArelExtensions::Nodes::Concat.new([
|
344
343
|
before,
|
345
344
|
sign,
|
346
345
|
middle,
|
347
346
|
number,
|
348
347
|
after
|
349
348
|
])
|
350
|
-
)
|
351
349
|
collector = visit ArelExtensions::Nodes::Concat.new([Arel::Nodes.build_quoted(o.prefix),full_number,Arel::Nodes.build_quoted(o.suffix)]), collector
|
352
350
|
collector
|
353
351
|
end
|
@@ -518,10 +518,10 @@ module ArelExtensions
|
|
518
518
|
|
519
519
|
|
520
520
|
def visit_ArelExtensions_Nodes_FormattedNumber o, collector
|
521
|
-
col = o.left
|
521
|
+
col = o.left.coalesce(0)
|
522
522
|
comma = Arel::Visitors::Oracle::NUMBER_COMMA_MAPPING[o.locale] || '.,'
|
523
523
|
comma_in_format = o.precision == 0 ? '' : 'D'
|
524
|
-
nines_after = (1..o.precision).map{'9'}.join('')
|
524
|
+
nines_after = (1..o.precision-1).map{'9'}.join('')+'0'
|
525
525
|
if comma.length == 1
|
526
526
|
options = Arel::Nodes.build_quoted("NLS_NUMERIC_CHARACTERS = '"+comma+" '")
|
527
527
|
nines_before = ("999"*4+"990")
|
@@ -563,16 +563,14 @@ module ArelExtensions
|
|
563
563
|
before = (!o.flags.include?('0'))&&(!o.flags.include?('-')) ? repeated_char : ''
|
564
564
|
middle = (o.flags.include?('0'))&&(!o.flags.include?('-')) ? repeated_char : ''
|
565
565
|
after = o.flags.include?('-') ? repeated_char : ''
|
566
|
-
full_number =
|
567
|
-
ArelExtensions::Nodes::Concat.new([
|
566
|
+
full_number = ArelExtensions::Nodes::Concat.new([
|
568
567
|
before,
|
569
568
|
sign,
|
570
569
|
middle,
|
571
570
|
number,
|
572
571
|
after
|
573
572
|
])
|
574
|
-
)
|
575
|
-
collector = visit ArelExtensions::Nodes::Concat.new([Arel::Nodes.build_quoted(o.prefix),full_number,Arel::Nodes.build_quoted(o.suffix)]), collector
|
573
|
+
collector = visit ArelExtensions::Nodes::Concat.new([Arel::Nodes.build_quoted(o.prefix),full_number,Arel::Nodes.build_quoted(o.suffix)]), collector
|
576
574
|
collector
|
577
575
|
end
|
578
576
|
|
@@ -280,7 +280,7 @@ module ArelExtensions
|
|
280
280
|
end
|
281
281
|
|
282
282
|
def visit_ArelExtensions_Nodes_FormattedNumber o, collector
|
283
|
-
col = o.left
|
283
|
+
col = o.left.coalesce(0)
|
284
284
|
comma = o.precision == 0 ? '' : (Arel::Visitors::PostgreSQL::NUMBER_COMMA_MAPPING[o.locale][0] || '.')
|
285
285
|
thousand_separator = Arel::Visitors::PostgreSQL::NUMBER_COMMA_MAPPING[o.locale][1] || (Arel::Visitors::PostgreSQL::NUMBER_COMMA_MAPPING[o.locale] ? '' : 'G')
|
286
286
|
nines_after = (1..o.precision).map{'9'}.join('')
|
@@ -323,15 +323,13 @@ module ArelExtensions
|
|
323
323
|
before = (!o.flags.include?('0'))&&(!o.flags.include?('-')) ? repeated_char : ''
|
324
324
|
middle = (o.flags.include?('0'))&&(!o.flags.include?('-')) ? repeated_char : ''
|
325
325
|
after = o.flags.include?('-') ? repeated_char : ''
|
326
|
-
full_number =
|
327
|
-
ArelExtensions::Nodes::Concat.new([
|
326
|
+
full_number = ArelExtensions::Nodes::Concat.new([
|
328
327
|
before,
|
329
328
|
sign,
|
330
329
|
middle,
|
331
330
|
number,
|
332
331
|
after
|
333
332
|
])
|
334
|
-
)
|
335
333
|
collector = visit ArelExtensions::Nodes::Concat.new([Arel::Nodes.build_quoted(o.prefix),full_number,Arel::Nodes.build_quoted(o.suffix)]), collector
|
336
334
|
collector
|
337
335
|
end
|
@@ -527,6 +527,8 @@ module ArelExtensions
|
|
527
527
|
assert_equal "123456765,6" , t(@arthur, (@score+123456700).format_number("%.1f","fr_FR"))
|
528
528
|
assert_equal "123,456,765.6" , t(@arthur, (@score+123456700).format_number("%.1f","en_US"))
|
529
529
|
assert_equal " 123,456,765.6" , t(@arthur, (@score+123456700).format_number("%16.1f","en_US"))
|
530
|
+
assert_equal "$ 0,00 €" , t(@arthur, @score.when(65.62).then(Arel.sql("null")).else(1).format_number("$ %.2f €","fr_FR"))
|
531
|
+
assert_equal "$ 0,00 €" , t(@arthur, (@score-65.62).format_number("$ %.2f €","fr_FR"))
|
530
532
|
end
|
531
533
|
|
532
534
|
def test_accent_insensitive
|