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