arel_extensions 1.1.2 → 1.1.3
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.
- 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
|