提交 3878a115 编写于 作者: A Aaron Patterson

refactor for faster method lookup

上级 6d44a134
......@@ -116,7 +116,7 @@ def outer_join(other_relation = nil)
end
%w{
where project order skip group having
where order skip group having
}.each do |operation_name|
class_eval <<-OPERATION, __FILE__, __LINE__
def #{operation_name}(*arguments)
......@@ -126,6 +126,11 @@ def #{operation_name}(*arguments)
OPERATION
end
def project *args
return self if args.all? { |x| x.blank? }
Project.new self, *args
end
def take thing
Take.new self, thing
end
......@@ -142,20 +147,17 @@ def alias
Alias.new(self)
end
module Writable
def insert(record)
session.create Insert.new(self, record)
end
def insert(record)
session.create Insert.new(self, record)
end
def update(assignments)
session.update Update.new(self, assignments)
end
def update(assignments)
session.update Update.new(self, assignments)
end
def delete
session.delete Deletion.new(self)
end
def delete
session.delete Deletion.new(self)
end
include Writable
JoinOperation = Struct.new(:join_class, :relation1, :relation2) do
def on(*predicates)
......
......@@ -159,7 +159,7 @@ module Arel
end
end
describe Relation::Operable::Writable do
describe 'relation is writable' do
describe '#delete' do
it 'manufactures a deletion relation' do
Session.start do |s|
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册