提交 963ca860 编写于 作者: A Aaron Patterson

adding unary node

上级 ad16c18c
require 'arel/nodes/node'
require 'arel/nodes/unary'
require 'arel/nodes/binary'
require 'arel/nodes/equality'
require 'arel/nodes/between'
......
module Arel
module Nodes
class Group
attr_accessor :expr
def initialize expr
@expr = expr
end
class Group < Arel::Nodes::Unary
end
end
end
module Arel
module Nodes
class Grouping < Arel::Nodes::Node
attr_accessor :expr
def initialize expression
@expr = expression
end
class Grouping < Arel::Nodes::Unary
end
end
end
module Arel
module Nodes
class Having
attr_accessor :expr
def initialize expr
@expr = expr
end
class Having < Arel::Nodes::Unary
end
end
end
module Arel
module Nodes
class Offset
attr_accessor :value
def initialize value
@value = value
end
class Offset < Arel::Nodes::Unary
alias :value :expr
end
end
end
module Arel
module Nodes
class Ordering < Arel::Nodes::Node
attr_accessor :expr, :direction
class Ordering < Arel::Nodes::Binary
alias :expr :left
alias :direction :right
def initialize expression, direction = :asc
@expr, @direction = expression, direction
def initialize expr, direction = :asc
super
end
def ascending?
......
module Arel
module Nodes
class Unary < Arel::Nodes::Node
attr_accessor :expr
def initialize expr
@expr = expr
end
end
end
end
......@@ -97,7 +97,7 @@ def visit_Arel_Nodes_Having o
end
def visit_Arel_Nodes_Offset o
"OFFSET #{visit o.value}"
"OFFSET #{visit o.expr}"
end
# FIXME: this does nothing on SQLLite3, but should do things on other
......
......@@ -130,6 +130,9 @@ def test_insert_statement
@visitor.accept stmt
assert_equal [:a, :b, stmt.columns, :c, stmt], @collector.calls
end
def test_offset
end
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册