Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
490f2503
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,发现更多精彩内容 >>
提交
490f2503
编写于
8月 07, 2013
作者:
J
Jan Szumiec
提交者:
Lucas Mazza
6月 19, 2014
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
highlight() now accepts regular expressions as well.
上级
2b617783
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
15 addition
and
5 deletion
+15
-5
actionview/lib/action_view/helpers/text_helper.rb
actionview/lib/action_view/helpers/text_helper.rb
+6
-4
actionview/test/template/text_helper_test.rb
actionview/test/template/text_helper_test.rb
+9
-1
未找到文件。
actionview/lib/action_view/helpers/text_helper.rb
浏览文件 @
490f2503
...
...
@@ -123,7 +123,9 @@ def highlight(text, phrases, options = {})
text
else
highlighter
=
options
.
fetch
(
:highlighter
,
'<mark>\1</mark>'
)
match
=
Array
(
phrases
).
map
{
|
p
|
Regexp
.
escape
(
p
)
}.
join
(
'|'
)
match
=
Array
(
phrases
).
map
do
|
p
|
Regexp
===
p
?
p
.
to_s
:
Regexp
.
escape
(
p
)
end
.
join
(
'|'
)
text
.
gsub
(
/(
#{
match
}
)(?![^<]*?>)/i
,
highlighter
)
end
.
html_safe
end
...
...
@@ -156,11 +158,11 @@ def excerpt(text, phrase, options = {})
return
unless
text
&&
phrase
separator
=
options
.
fetch
(
:separator
,
nil
)
||
""
if
Regexp
===
phrase
case
phrase
when
Regexp
regex
=
phrase
else
phrase
=
Regexp
.
escape
(
phrase
)
regex
=
/
#{
phrase
}
/i
regex
=
/
#{
Regexp
.
escape
(
phrase
)
}
/i
end
return
unless
matches
=
text
.
match
(
regex
)
...
...
actionview/test/template/text_helper_test.rb
浏览文件 @
490f2503
...
...
@@ -222,6 +222,11 @@ def test_highlight_with_regexp
)
end
def
test_highlight_accepts_regexp
assert_equal
(
"This day was challenging for judge <mark>Allen</mark> and his colleagues."
,
highlight
(
"This day was challenging for judge Allen and his colleagues."
,
/\ballen\b/i
))
end
def
test_highlight_with_multiple_phrases_in_one_pass
assert_equal
%(<em>wow</em> <em>em</em>)
,
highlight
(
'wow em'
,
%w(wow em)
,
:highlighter
=>
'<em>\1</em>'
)
end
...
...
@@ -264,9 +269,12 @@ def test_excerpt
assert_equal
(
"...is a beautiful morn..."
,
excerpt
(
"This is a beautiful morning"
,
"beautiful"
,
:radius
=>
5
))
assert_equal
(
"This is a..."
,
excerpt
(
"This is a beautiful morning"
,
"this"
,
:radius
=>
5
))
assert_equal
(
"...iful morning"
,
excerpt
(
"This is a beautiful morning"
,
"morning"
,
:radius
=>
5
))
assert_nil
excerpt
(
"This is a beautiful morning"
,
"day"
)
end
def
test_excerpt_with_regex
assert_equal
(
"...udge Allen and..."
,
excerpt
(
"This day was challenging for judge Allen and his colleagues."
,
/\ballen\b/i
,
:radius
=>
5
))
assert_equal
(
"...judge Allen and..."
,
excerpt
(
"This day was challenging for judge Allen and his colleagues."
,
/\ballen\b/i
,
:radius
=>
1
,
:separator
=>
' '
))
assert_nil
excerpt
(
"This is a beautiful morning"
,
"day"
)
end
def
test_excerpt_should_not_be_html_safe
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录