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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b36bcf361cb8f97341795d3259a5d1b29a9b046
4
- data.tar.gz: 67c3eafebe0c53790bf4c0f057d90c4fd773311d
3
+ metadata.gz: 68ee590a18210a1a5692c9ba7c4caf3c47a11f4e
4
+ data.tar.gz: a78126c03105531c7e0c25cee082c34c18eb7fdd
5
5
  SHA512:
6
- metadata.gz: 844f8c6fecf320902f0ea8d07a52182423ce660307019d8b50a93757332edbc9251549b26f2f091206f79988e923eb437c45cdb5900aa6957325073e52da31a4
7
- data.tar.gz: 62b98ce10a839b8aab63a613be066b50356de269f292a1b9d44e4d74b33e2295878b5385e4eba24e090367f4682cce7611a491824050072963ed8daf26e8ad2a
6
+ metadata.gz: fd66f0377b2c25fe6e18c3ee250e1fc55e699d6a423e43c65fee38749752955e1e3f33ca58f31200d9ed26fcc818da44c2d1f02c7ee11e05c9a7756f5a560f1f
7
+ data.tar.gz: d7b6f047370c4cc2af72b632adb10678ed70ba9ef2e58e6a1630d1672ed8a3dc562f093a2787cd15611454a92c2be1f94f98b74f877e48bdf49420107129f7a1
@@ -25,6 +25,15 @@ module ArelExtensions::Nodes
25
25
  super(tab)
26
26
  end
27
27
 
28
+ def self.new expr
29
+ o = super(expr)
30
+ if o.expressions.length == 1
31
+ o.expressions[0]
32
+ else
33
+ o
34
+ end
35
+ end
36
+
28
37
  #def +(other)
29
38
  # Concat.new(self.expressions + [other])
30
39
  #end
@@ -108,12 +108,7 @@ module ArelExtensions
108
108
  end
109
109
 
110
110
  def concat other
111
- res = ArelExtensions::Nodes::Concat.new [self, other]
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
@@ -1,3 +1,3 @@
1
1
  module ArelExtensions
2
- VERSION = "1.1.2".freeze
2
+ VERSION = "1.1.3".freeze
3
3
  end
@@ -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 = col.when(0).then('0').else(
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 = col.when(0).then('0').else(
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 = col.when(0).then('0').else(
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Azoury