aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-01-22 06:54:41 +0900
committerGitHub <noreply@github.com>2019-01-22 06:54:41 +0900
commit3f0c7c5580e67120b2a42552c3624b4e552aa721 (patch)
treed1ef0df17086fde131e246eb40090117bf1d23c3 /activerecord
parent4f62e757caf608d30d46ee745f4f666fb8eba2a7 (diff)
parent65cec345b487a784c9dae4155f74e70befc0bddb (diff)
downloadrails-3f0c7c5580e67120b2a42552c3624b4e552aa721.tar.gz
rails-3f0c7c5580e67120b2a42552c3624b4e552aa721.tar.bz2
rails-3f0c7c5580e67120b2a42552c3624b4e552aa721.zip
Merge pull request #35006 from kddeisz/alias-case-nodes
Alias case nodes
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/arel/nodes/case.rb2
-rw-r--r--activerecord/test/cases/arel/nodes/case_test.rb10
2 files changed, 12 insertions, 0 deletions
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