Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
社会瑞弟呀
brakeman
提交
23c35630
B
brakeman
项目概览
社会瑞弟呀
/
brakeman
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
brakeman
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
23c35630
编写于
4月 29, 2013
作者:
S
soffolk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor get_options and get_output_format
上级
1fe36bc4
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
81 addition
and
41 deletion
+81
-41
lib/brakeman.rb
lib/brakeman.rb
+44
-41
test/tests/test_brakeman.rb
test/tests/test_brakeman.rb
+37
-0
未找到文件。
lib/brakeman.rb
浏览文件 @
23c35630
...
...
@@ -63,15 +63,9 @@ module Brakeman
options
=
{
:app_path
=>
options
}
end
options
[
:app_path
]
=
File
.
expand_path
(
options
[
:app_path
])
file_options
=
load_options
(
options
[
:config_file
])
options
=
file_options
.
merge
options
options
=
default_options
.
merge
(
load_options
(
options
[
:config_file
])).
merge
(
options
)
options
[
:quiet
]
=
true
if
options
[
:quiet
].
nil?
&&
file_options
[
:quiet
]
options
=
get_defaults
.
merge!
options
options
[
:app_path
]
=
File
.
expand_path
(
options
[
:app_path
])
options
[
:output_formats
]
=
get_output_formats
options
options
...
...
@@ -102,7 +96,7 @@ module Brakeman
end
#Default set of options
def
self
.
get_default
s
def
self
.
default_option
s
{
:assume_all_routes
=>
true
,
:skip_checks
=>
Set
.
new
,
:check_arguments
=>
true
,
...
...
@@ -130,25 +124,34 @@ module Brakeman
raise
ArgumentError
,
"Cannot specify output format if multiple output files specified"
end
if
options
[
:output_format
]
[
case
options
[
:output_format
]
get_formats_from_output_format
options
[
:output_format
]
elsif
options
[
:output_files
]
get_formats_from_output_files
options
[
:output_files
]
else
return
[
:to_s
]
end
end
def
self
.
get_formats_from_output_format
output_format
case
output_format
when
:html
,
:to_html
:to_html
[
:to_html
]
when
:csv
,
:to_csv
:to_csv
[
:to_csv
]
when
:pdf
,
:to_pdf
:to_pdf
[
:to_pdf
]
when
:tabs
,
:to_tabs
:to_tabs
[
:to_tabs
]
when
:json
,
:to_json
:to_json
[
:to_json
]
else
:to_s
[
:to_s
]
end
]
else
return
[
:to_s
]
unless
options
[
:output_files
]
options
[
:output_files
].
map
do
|
output_file
|
end
private_class_method
:get_formats_from_output_format
def
self
.
get_formats_from_output_files
output_files
output_files
.
map
do
|
output_file
|
case
output_file
when
/\.html$/i
:to_html
...
...
@@ -165,7 +168,7 @@ module Brakeman
end
end
end
end
private_class_method
:get_formats_from_output_files
#Output list of checks (for `-k` option)
def
self
.
list_checks
...
...
test/tests/test_brakeman.rb
浏览文件 @
23c35630
...
...
@@ -97,4 +97,41 @@ class ConfigTests < Test::Unit::TestCase
assert_nil
final_options
[
:quiet
]
end
def
test_output_format_with_default
options
=
{}
output_format
=
Brakeman
.
get_output_formats
(
options
)
assert_equal
[
:to_s
],
output_format
end
def
output_format_tester
options
,
expected_options
output_formats
=
Brakeman
.
get_output_formats
(
options
)
assert_equal
expected_options
,
output_formats
end
def
test_output_format
output_format_tester
({},
[
:to_s
])
output_format_tester
({
:output_format
=>
:html
},
[
:to_html
])
output_format_tester
({
:output_format
=>
:to_html
},
[
:to_html
])
output_format_tester
({
:output_format
=>
:csv
},
[
:to_csv
])
output_format_tester
({
:output_format
=>
:to_csv
},
[
:to_csv
])
output_format_tester
({
:output_format
=>
:pdf
},
[
:to_pdf
])
output_format_tester
({
:output_format
=>
:to_pdf
},
[
:to_pdf
])
output_format_tester
({
:output_format
=>
:json
},
[
:to_json
])
output_format_tester
({
:output_format
=>
:to_json
},
[
:to_json
])
output_format_tester
({
:output_format
=>
:tabs
},
[
:to_tabs
])
output_format_tester
({
:output_format
=>
:to_tabs
},
[
:to_tabs
])
output_format_tester
({
:output_format
=>
:others
},
[
:to_s
])
output_format_tester
({
:output_files
=>
[
'xx.html'
,
'xx.pdf'
]},
[
:to_html
,
:to_pdf
])
output_format_tester
({
:output_files
=>
[
'xx.pdf'
,
'xx.json'
]},
[
:to_pdf
,
:to_json
])
output_format_tester
({
:output_files
=>
[
'xx.json'
,
'xx.tabs'
]},
[
:to_json
,
:to_tabs
])
output_format_tester
({
:output_files
=>
[
'xx.tabs'
,
'xx.csv'
]},
[
:to_tabs
,
:to_csv
])
output_format_tester
({
:output_files
=>
[
'xx.csv'
,
'xx.xxx'
]},
[
:to_csv
,
:to_s
])
output_format_tester
({
:output_files
=>
[
'xx.xx'
,
'xx.xx'
]},
[
:to_s
,
:to_s
])
output_format_tester
({
:output_files
=>
[
'xx.html'
,
'xx.pdf'
,
'xx.csv'
,
'xx.tabs'
,
'xx.json'
]},
[
:to_html
,
:to_pdf
,
:to_csv
,
:to_tabs
,
:to_json
])
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录