Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
d827d6e9
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d827d6e9
编写于
8月 12, 2010
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
to_sql visitor started
上级
199d17b2
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
64 addition
and
0 deletion
+64
-0
lib/arel.rb
lib/arel.rb
+1
-0
lib/arel/nodes/equality.rb
lib/arel/nodes/equality.rb
+5
-0
lib/arel/table.rb
lib/arel/table.rb
+2
-0
lib/arel/visitors/to_sql.rb
lib/arel/visitors/to_sql.rb
+38
-0
spec/arel/attributes/attribute_spec.rb
spec/arel/attributes/attribute_spec.rb
+10
-0
spec/arel/table_spec.rb
spec/arel/table_spec.rb
+8
-0
未找到文件。
lib/arel.rb
浏览文件 @
d827d6e9
...
...
@@ -2,6 +2,7 @@
require
'arel/table'
require
'arel/attributes'
require
'arel/nodes'
require
'arel/visitors/to_sql'
# below is deprecated
require
'arel/sql/engine'
...
...
lib/arel/nodes/equality.rb
浏览文件 @
d827d6e9
...
...
@@ -7,6 +7,11 @@ def initialize left, right
@left
=
left
@right
=
right
end
def
to_sql
viz
=
Visitors
::
ToSql
.
new
left
.
relation
.
engine
viz
.
accept
self
end
end
end
end
lib/arel/table.rb
浏览文件 @
d827d6e9
...
...
@@ -3,6 +3,8 @@ class Table
@engine
=
nil
class
<<
self
;
attr_accessor
:engine
;
end
attr_reader
:name
,
:engine
def
initialize
name
,
engine
=
Table
.
engine
@name
=
name
@engine
=
engine
...
...
lib/arel/visitors/to_sql.rb
0 → 100644
浏览文件 @
d827d6e9
module
Arel
module
Visitors
class
ToSql
def
initialize
engine
@engine
=
engine
@connection
=
nil
end
def
accept
object
@connection
=
@engine
.
connection
visit
object
end
private
def
visit_Arel_Nodes_Equality
o
"
#{
visit
o
.
left
}
=
#{
visit
o
.
right
}
"
end
def
visit_Arel_Attributes_Integer
o
"
#{
quote_table_name
o
.
relation
.
name
}
.
#{
quote_column_name
o
.
name
}
"
end
def
visit_Fixnum
o
;
o
end
def
visit
object
send
:"visit_
#{
object
.
class
.
name
.
gsub
(
'::'
,
'_'
)
}
"
,
object
end
def
quote_table_name
name
@connection
.
quote_table_name
name
end
def
quote_column_name
name
@connection
.
quote_column_name
name
end
end
end
end
spec/arel/attributes/attribute_spec.rb
浏览文件 @
d827d6e9
...
...
@@ -13,5 +13,15 @@ module Attributes
end
end
end
describe
'equality'
do
describe
'#to_sql'
do
it
'should produce sql'
do
table
=
Table
.
new
:users
condition
=
table
[
'id'
].
eq
1
condition
.
to_sql
.
should
==
'"users"."id" = 1'
end
end
end
end
end
spec/arel/table_spec.rb
浏览文件 @
d827d6e9
...
...
@@ -14,6 +14,14 @@ module Arel
end
end
it
"should have a name"
do
@relation
.
name
.
should
==
:users
end
it
"should have an engine"
do
@relation
.
engine
.
should
==
Table
.
engine
end
describe
'[]'
do
describe
'when given a'
,
Symbol
do
it
"manufactures an attribute if the symbol names an attribute within the relation"
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录