From 65cec345b487a784c9dae4155f74e70befc0bddb Mon Sep 17 00:00:00 2001 From: Kevin Deisz Date: Mon, 21 Jan 2019 10:28:39 -0500 Subject: Alias case nodes When `Arel` was merged into `ActiveRecord` we lost the ability to alias case nodes. This adds it back. --- activerecord/lib/arel/nodes/case.rb | 2 ++ activerecord/test/cases/arel/nodes/case_test.rb | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/activerecord/lib/arel/nodes/case.rb b/activerecord/lib/arel/nodes/case.rb index 654a54825e..b8f83128c8 100644 --- a/activerecord/lib/arel/nodes/case.rb +++ b/activerecord/lib/arel/nodes/case.rb @@ -3,6 +3,8 @@ module Arel # :nodoc: all module Nodes class Case < Arel::Nodes::Node + include Arel::AliasPredication + attr_accessor :case, :conditions, :default def initialize(expression = nil, default = nil) diff --git a/activerecord/test/cases/arel/nodes/case_test.rb b/activerecord/test/cases/arel/nodes/case_test.rb index 89861488df..946c2b0453 100644 --- a/activerecord/test/cases/arel/nodes/case_test.rb +++ b/activerecord/test/cases/arel/nodes/case_test.rb @@ -80,6 +80,16 @@ module Arel assert_equal 2, array.uniq.size end end + + describe "#as" do + it "allows aliasing" do + node = Case.new "foo" + as = node.as("bar") + + assert_equal node, as.left + assert_kind_of Arel::Nodes::SqlLiteral, as.right + end + end end end end -- cgit v1.2.3