arel_extensions 1.2.12 → 1.2.13

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
  SHA256:
3
- metadata.gz: 61fb95aac9f849a376b1a3bd64463f73493d81b0e0bd6d5c4cca7bbc5f2a6118
4
- data.tar.gz: 25a3276b6c4b5d75ab0096abeffe566908e8fa705e971b374f9ed02bab750fb8
3
+ metadata.gz: d95996eb337a6f44206db8974a80f8811e4ae99e208dbb4653b8aaec8b5d5514
4
+ data.tar.gz: c471cedfab914493f46651a634ef422732e368dc9f62b94d0d26b16d6401dccf
5
5
  SHA512:
6
- metadata.gz: 66d7b78543425c7428470c3c004b679b8c79264e37f4e00ab359b144f066d64a0b98904db4ce02ba54084e4a798469f27723e9a5c1705e13b1f4bdcda157e8b2
7
- data.tar.gz: baf1f9313562c71596cc7c507fadcb0a87ec77afb40ec5ef0ba51e2880359702e06c04124ae696e9b9defb92445f5bebe134c91d295b9e346651fbdecf9581f7
6
+ metadata.gz: 149cb821e006982c7558cd19c5317a8363b7e6c75ba3f5907313667f381fe81933ac316ce307fbb6ecb04511cef0dd0a01dbc656e628bf99c701cbe8556e222d
7
+ data.tar.gz: 056a3f0a29ba48eff7615b6634c8a3e2538a755e735daafe4d0cc9acef357404ec1852ceafb2c3b76d265e3cfd616f0797d0abfce24209d1931dc8474b2d8844
@@ -36,7 +36,7 @@ class Arel::Nodes::Function
36
36
  include Arel::Expressions
37
37
  end
38
38
 
39
- if Arel::VERSION >= "7.1.0"
39
+ if Gem::Version.new(Arel::VERSION) >= Gem::Version.new("7.1.0")
40
40
  class Arel::Nodes::Case
41
41
  include Arel::Math
42
42
  include Arel::Expressions
@@ -183,3 +183,14 @@ class Arel::Table
183
183
  name.blank? ? self : Arel::Nodes::TableAlias.new(self,name)
184
184
  end
185
185
  end
186
+
187
+ class Arel::Nodes::TableAlias
188
+ def method_missing(*args)
189
+ met = args.shift.to_sym
190
+ if self.relation.respond_to?(met)
191
+ self.relation.send(met,args)
192
+ else
193
+ super
194
+ end
195
+ end
196
+ end
@@ -1,7 +1,11 @@
1
1
  module ArelExtensions
2
2
  module Nodes
3
- if Arel::VERSION < "7.1.0"
3
+ if Gem::Version.new(Arel::VERSION) < Gem::Version.new("7.1.0")
4
4
  class Case < Arel::Nodes::Node
5
+ include Arel::Expressions
6
+ include Arel::Math
7
+ include Arel::Predications
8
+ include Arel::OrderPredications
5
9
  attr_accessor :case, :conditions, :default
6
10
 
7
11
  def initialize expression = nil, default = nil
@@ -28,6 +32,8 @@ module ArelExtensions
28
32
 
29
33
  class ArelExtensions::Nodes::Case
30
34
  include Arel::Expressions
35
+ include Arel::Math
36
+ include Arel::Predications
31
37
  include Arel::OrderPredications
32
38
  include ArelExtensions::Math
33
39
  include ArelExtensions::Comparators
@@ -1,3 +1,3 @@
1
1
  module ArelExtensions
2
- VERSION = "1.2.12".freeze
2
+ VERSION = "1.2.13".freeze
3
3
  end
@@ -364,16 +364,6 @@ module ArelExtensions
364
364
  collector
365
365
  end
366
366
 
367
-
368
- alias_method :old_visit_Arel_Nodes_SelectStatement, :visit_Arel_Nodes_SelectStatement
369
- def visit_Arel_Nodes_SelectStatement o, collector
370
- if !collector.value.blank? && o.limit.blank?
371
- o = o.dup
372
- o.orders = []
373
- end
374
- old_visit_Arel_Nodes_SelectStatement(o,collector)
375
- end
376
-
377
367
  alias_method :old_visit_Arel_Nodes_As, :visit_Arel_Nodes_As
378
368
  def visit_Arel_Nodes_As o, collector
379
369
  if o.left.is_a?(Arel::Nodes::Binary)
@@ -624,7 +624,7 @@ module ArelExtensions
624
624
 
625
625
  def visit_ArelExtensions_Nodes_JsonGroup o, collector
626
626
  if o.as_array
627
- res = Arel::Nodes.build_quoted('[') + (o.orders ? o.dict.group_concat(', ',o.orders) : o.dict.group_concat(', ')) + ']'
627
+ res = Arel::Nodes.build_quoted('[') + (o.orders ? o.dict.group_concat(', ', order: Array(o.orders)) : o.dict.group_concat(', ')).coalesce('') + ']'
628
628
  collector = visit res, collector
629
629
  else
630
630
  res = Arel::Nodes.build_quoted('{')
@@ -639,7 +639,7 @@ module ArelExtensions
639
639
  else
640
640
  kv += v
641
641
  end
642
- res = res + kv.group_concat(', ',orders)
642
+ res = res + kv.group_concat(', ', order: Array(orders)).coalesce('')
643
643
  end
644
644
  res = res + '}'
645
645
  collector = visit res, collector
@@ -463,6 +463,13 @@ module ArelExtensions
463
463
  .must_be_like %{(LOCATE('test', "users"."name") + 1) ASC}
464
464
  end
465
465
 
466
+ it "should be possible to call Table function on TableAlias" do
467
+ t = @table
468
+ a = t.alias("aliased_users")
469
+ _(compile(a.join(t).join_sources))
470
+ .must_be_like %{INNER JOIN \"users\"}
471
+ end
472
+
466
473
  describe "logical functions" do
467
474
 
468
475
  it "should know about truth" do
@@ -581,6 +581,7 @@ module ArelExtensions
581
581
  # Case clause
582
582
  def test_case
583
583
  assert_equal 4, User.find_by_sql(@ut.project(@score.when(20.16).then(1).else(0).as('score_bin')).to_sql).sum(&:score_bin)
584
+ assert_equal 4, User.where(@score.when(20.16).then(1).else(0).eq(1)).count
584
585
  assert_equal 2, t(@arthur, @score.when(65.62,1).else(0)+1)
585
586
  assert_equal 0, t(@arthur, @score.when(65.62,1).else(0)-1)
586
587
  assert_equal "11", t(@arthur, @score.when(65.62).then("1").else("0")+"1")
@@ -1,3 +1,3 @@
1
1
  module ArelExtensions
2
- VERSION = "1.2.12".freeze
2
+ VERSION = "1.2.13".freeze
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module ArelExtensions
2
- VERSION = "2.0.8".freeze
2
+ VERSION = "2.0.9".freeze
3
3
  end
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.2.12
4
+ version: 1.2.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Azoury
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-04-30 00:00:00.000000000 Z
13
+ date: 2020-08-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: arel