提交 188fc7a4 编写于 作者: A Aaron Patterson

refactoring expressions to a module

上级 5d11fa9f
require 'arel/crud'
require 'arel/version'
require 'arel/expressions'
require 'arel/table'
require 'arel/attributes'
require 'arel/compatibility/wheres'
......
module Arel
module Attributes
class Attribute < Struct.new :relation, :name, :column
include Arel::Expressions
def not_eq other
Nodes::NotEqual.new self, other
end
......@@ -13,26 +15,6 @@ def in other
Nodes::In.new self, other
end
def count distinct = false
Nodes::Count.new [self], distinct
end
def sum
Nodes::Sum.new [self], Nodes::SqlLiteral.new('sum_id')
end
def maximum
Nodes::Max.new [self], Nodes::SqlLiteral.new('max_id')
end
def minimum
Nodes::Min.new [self], Nodes::SqlLiteral.new('min_id')
end
def average
Nodes::Avg.new [self], Nodes::SqlLiteral.new('avg_id')
end
def gteq right
Nodes::GreaterThanOrEqual.new self, right
end
......
module Arel
module Expressions
def count distinct = false
Nodes::Count.new [self], distinct
end
def sum
Nodes::Sum.new [self], Nodes::SqlLiteral.new('sum_id')
end
def maximum
Nodes::Max.new [self], Nodes::SqlLiteral.new('max_id')
end
def minimum
Nodes::Min.new [self], Nodes::SqlLiteral.new('min_id')
end
def average
Nodes::Avg.new [self], Nodes::SqlLiteral.new('avg_id')
end
end
end
module Arel
module Nodes
class SqlLiteral < String
def count distinct = false
Count.new [self], distinct
end
def sum
Nodes::Sum.new [self], Nodes::SqlLiteral.new('sum_id')
end
def maximum
Nodes::Max.new [self], Nodes::SqlLiteral.new('max_id')
end
include Arel::Expressions
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册