Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
Brakeman
提交
a30cf962
B
Brakeman
项目概览
李少辉-开发者
/
Brakeman
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Brakeman
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
a30cf962
编写于
3月 16, 2012
作者:
J
Justin Collins
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[WIP] render :layout in views
上级
d1332357
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
37 addition
and
11 deletion
+37
-11
lib/brakeman/processors/base_processor.rb
lib/brakeman/processors/base_processor.rb
+21
-6
lib/brakeman/processors/erb_template_processor.rb
lib/brakeman/processors/erb_template_processor.rb
+1
-1
lib/brakeman/processors/erubis_template_processor.rb
lib/brakeman/processors/erubis_template_processor.rb
+1
-1
lib/brakeman/processors/haml_template_processor.rb
lib/brakeman/processors/haml_template_processor.rb
+1
-1
lib/brakeman/processors/lib/render_helper.rb
lib/brakeman/processors/lib/render_helper.rb
+13
-2
未找到文件。
lib/brakeman/processors/base_processor.rb
浏览文件 @
a30cf962
...
...
@@ -210,9 +210,14 @@ class Brakeman::BaseProcessor < SexpProcessor
exp
end
#Convenience method for `make_render exp, true`
def
make_render_in_view
exp
make_render
exp
,
true
end
#Generates :render node from call to render.
def
make_render
exp
render_type
,
value
,
rest
=
find_render_type
exp
[
3
]
def
make_render
exp
,
in_view
=
false
render_type
,
value
,
rest
=
find_render_type
exp
[
3
]
,
in_view
rest
=
process
rest
result
=
Sexp
.
new
(
:render
,
render_type
,
value
,
rest
)
result
.
line
(
exp
.
line
)
...
...
@@ -222,9 +227,11 @@ class Brakeman::BaseProcessor < SexpProcessor
#Determines the type of a call to render.
#
#Possible types are:
#:action, :default :file, :inline, :js, :json, :nothing, :partial,
#:action, :default
,
:file, :inline, :js, :json, :nothing, :partial,
#:template, :text, :update, :xml
def
find_render_type
args
#
#And also :layout for inside templates
def
find_render_type
args
,
in_view
=
false
rest
=
Sexp
.
new
(
:hash
)
type
=
nil
value
=
nil
...
...
@@ -252,10 +259,18 @@ class Brakeman::BaseProcessor < SexpProcessor
value
=
args
[
1
]
end
types_in_hash
=
Set
[
:action
,
:file
,
:inline
,
:js
,
:json
,
:nothing
,
:partial
,
:text
,
:update
,
:xml
]
#render :layout => "blah" means something else when in a template
if
in_view
types_in_hash
<<
:layout
end
#Look for "type" of render in options hash
#For example, render :file => "blah"
if
hash
?
args
[
-
1
]
hash_iterate
(
args
[
-
1
])
do
|
key
,
val
|
case
key
[
1
]
when
:action
,
:file
,
:inline
,
:js
,
:json
,
:nothing
,
:partial
,
:text
,
:update
,
:
xml
if
types_in_hash
.
include?
key
[
1
]
type
=
key
[
1
]
value
=
val
else
...
...
lib/brakeman/processors/erb_template_processor.rb
浏览文件 @
a30cf962
...
...
@@ -44,7 +44,7 @@ class Brakeman::ErbTemplateProcessor < Brakeman::TemplateProcessor
end
elsif
target
==
nil
and
method
==
:render
exp
[
3
]
=
process
(
exp
[
3
])
make_render
exp
make_render
_in_view
exp
else
args
=
exp
[
3
]
=
process
(
exp
[
3
])
call
=
Sexp
.
new
:call
,
target
,
method
,
args
...
...
lib/brakeman/processors/erubis_template_processor.rb
浏览文件 @
a30cf962
...
...
@@ -35,7 +35,7 @@ class Brakeman::ErubisTemplateProcessor < Brakeman::TemplateProcessor
end
elsif
target
==
nil
and
method
==
:render
exp
[
3
]
=
process
exp
[
3
]
make_render
exp
make_render
_in_view
exp
else
args
=
exp
[
3
]
=
process
(
exp
[
3
])
call
=
Sexp
.
new
:call
,
target
,
method
,
args
...
...
lib/brakeman/processors/haml_template_processor.rb
浏览文件 @
a30cf962
...
...
@@ -92,7 +92,7 @@ class Brakeman::HamlTemplateProcessor < Brakeman::TemplateProcessor
elsif
target
==
nil
and
method
==
:render
#Process call to render()
exp
[
3
]
=
process
exp
[
3
]
make_render
exp
make_render
_in_view
exp
else
args
=
process
exp
[
3
]
call
=
Sexp
.
new
:call
,
target
,
method
,
args
...
...
lib/brakeman/processors/lib/render_helper.rb
浏览文件 @
a30cf962
...
...
@@ -11,14 +11,25 @@ module Brakeman::RenderHelper
when
:action
process_action
exp
[
2
][
1
],
exp
[
3
]
when
:default
process_template
template_name
,
exp
[
3
]
when
:partial
begin
process_template
template_name
,
exp
[
3
]
rescue
ArgumentError
=>
e
$stderr
.
puts
e
$stderr
.
puts
self
.
class
$stderr
.
puts
@template
[
:name
]
$stderr
.
puts
"Problem processing render:
#{
exp
}
"
end
when
:partial
,
:layout
process_partial
exp
[
2
],
exp
[
3
]
when
:nothing
end
exp
end
def
process_layout_in_view
exp
$stderr
.
puts
exp
.
inspect
end
#Processes layout
def
process_layout
name
=
nil
if
name
.
nil?
and
defined?
layout_name
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录