mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
adding an AS node
This commit is contained in:
parent
76932b99d6
commit
6667cfb995
8 changed files with 41 additions and 1 deletions
|
@ -4,6 +4,7 @@
|
|||
|
||||
* #lock will lock SELECT statements "FOR UPDATE" on mysql
|
||||
* Nodes::Node#not factory method added for creating Nodes::Not nodes
|
||||
* Added an As node
|
||||
|
||||
== 2.0.4
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ lib/arel/expressions.rb
|
|||
lib/arel/insert_manager.rb
|
||||
lib/arel/nodes.rb
|
||||
lib/arel/nodes/and.rb
|
||||
lib/arel/nodes/as.rb
|
||||
lib/arel/nodes/assignment.rb
|
||||
lib/arel/nodes/avg.rb
|
||||
lib/arel/nodes/between.rb
|
||||
|
@ -81,6 +82,7 @@ lib/arel/visitors/visitor.rb
|
|||
lib/arel/visitors/where_sql.rb
|
||||
test/attributes/test_attribute.rb
|
||||
test/helper.rb
|
||||
test/nodes/test_as.rb
|
||||
test/nodes/test_count.rb
|
||||
test/nodes/test_delete_statement.rb
|
||||
test/nodes/test_equality.rb
|
||||
|
|
|
@ -6,6 +6,7 @@ require 'arel/nodes/not_equal'
|
|||
require 'arel/nodes/assignment'
|
||||
require 'arel/nodes/or'
|
||||
require 'arel/nodes/and'
|
||||
require 'arel/nodes/as'
|
||||
require 'arel/nodes/not'
|
||||
require 'arel/nodes/greater_than'
|
||||
require 'arel/nodes/greater_than_or_equal'
|
||||
|
|
6
lib/arel/nodes/as.rb
Normal file
6
lib/arel/nodes/as.rb
Normal file
|
@ -0,0 +1,6 @@
|
|||
module Arel
|
||||
module Nodes
|
||||
class As < Arel::Nodes::Binary
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,5 +1,9 @@
|
|||
module Arel
|
||||
module Predications
|
||||
def as other
|
||||
Nodes::As.new self, other
|
||||
end
|
||||
|
||||
def not_eq other
|
||||
Nodes::NotEqual.new self, other
|
||||
end
|
||||
|
@ -174,4 +178,4 @@ module Arel
|
|||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -250,6 +250,10 @@ module Arel
|
|||
end
|
||||
end
|
||||
|
||||
def visit_Arel_Nodes_As o
|
||||
"#{visit o.left} AS #{visit o.right}"
|
||||
end
|
||||
|
||||
def visit_Arel_Nodes_UnqualifiedColumn o
|
||||
"#{quote_column_name o.name}"
|
||||
end
|
||||
|
|
16
test/nodes/test_as.rb
Normal file
16
test/nodes/test_as.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
require 'helper'
|
||||
|
||||
module Arel
|
||||
module Nodes
|
||||
describe 'As' do
|
||||
describe '#as' do
|
||||
it 'makes an AS node' do
|
||||
attr = Table.new(:users)[:id]
|
||||
as = attr.as(Arel.sql('foo'))
|
||||
assert_equal attr, as.left
|
||||
assert_equal 'foo', as.right
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -38,6 +38,12 @@ module Arel
|
|||
sql.must_be_like "NOT foo"
|
||||
end
|
||||
|
||||
it "should visit_As" do
|
||||
as = Nodes::As.new(Arel.sql("foo"), Arel.sql("bar"))
|
||||
sql = @visitor.accept as
|
||||
sql.must_be_like "foo AS bar"
|
||||
end
|
||||
|
||||
it "should visit_Bignum" do
|
||||
@visitor.accept 8787878092
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue