Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
323d328c
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
323d328c
编写于
3月 20, 2016
作者:
G
Grzegorz Bizon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Rename reference unfolder to rewriter, minor refactorings
上级
802b28e0
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
21 deletion
+21
-21
app/services/issues/move_service.rb
app/services/issues/move_service.rb
+2
-2
lib/gitlab/gfm/reference_rewriter.rb
lib/gitlab/gfm/reference_rewriter.rb
+16
-16
spec/lib/gitlab/gfm/reference_rewriter_spec.rb
spec/lib/gitlab/gfm/reference_rewriter_spec.rb
+3
-3
未找到文件。
app/services/issues/move_service.rb
浏览文件 @
323d328c
...
...
@@ -77,9 +77,9 @@ module Issues
end
def
unfold_references
(
content
)
unfolder
=
Gitlab
::
Gfm
::
ReferenceUnfold
er
.
new
(
content
,
@old_project
,
rewriter
=
Gitlab
::
Gfm
::
ReferenceRewrit
er
.
new
(
content
,
@old_project
,
@current_user
)
unfolder
.
unfold
(
@new_project
)
rewriter
.
rewrite
(
@new_project
)
end
def
notify_participants
...
...
lib/gitlab/gfm/reference_
unfold
er.rb
→
lib/gitlab/gfm/reference_
rewrit
er.rb
浏览文件 @
323d328c
...
...
@@ -28,32 +28,31 @@ module Gitlab
# 'Merge request for issue gitlab-org/gitlab-ce#1234, se also link:
# http://gitlab.com/some/link/#1234, and code `puts #1234`'
#
class
Reference
Unfold
er
def
initialize
(
text
,
project
,
user
)
class
Reference
Rewrit
er
def
initialize
(
text
,
source_project
,
current_
user
)
@text
=
text
@
project
=
project
@
user
=
user
@original
=
markdown
(
text
)
@
source_project
=
source_
project
@
current_user
=
current_
user
@original
_html
=
markdown
(
text
)
end
def
unfold
(
from
_project
)
def
rewrite
(
target
_project
)
pattern
=
Gitlab
::
ReferenceExtractor
.
references_pattern
return
@text
unless
@text
=~
pattern
@text
.
gsub
(
pattern
)
do
|
reference
|
unfold_reference
(
reference
,
Regexp
.
last_match
,
from
_project
)
unfold_reference
(
reference
,
Regexp
.
last_match
,
target
_project
)
end
end
private
def
unfold_reference
(
reference
,
match
,
from
_project
)
def
unfold_reference
(
reference
,
match
,
target
_project
)
before
=
@text
[
0
...
match
.
begin
(
0
)]
after
=
@text
[
match
.
end
(
0
)
..
.
@text
.
length
]
referable
=
find_referable
(
reference
)
after
=
@text
[
match
.
end
(
0
)
..
-
1
]
referable
=
find_
local_
referable
(
reference
)
return
reference
unless
referable
cross_reference
=
referable
.
to_reference
(
from
_project
)
cross_reference
=
referable
.
to_reference
(
target
_project
)
new_text
=
before
+
cross_reference
+
after
substitution_valid?
(
new_text
)
?
cross_reference
:
reference
...
...
@@ -62,21 +61,22 @@ module Gitlab
def
referables
return
@referables
if
@referables
extractor
=
Gitlab
::
ReferenceExtractor
.
new
(
@project
,
@user
)
extractor
=
Gitlab
::
ReferenceExtractor
.
new
(
@source_project
,
@current_user
)
extractor
.
analyze
(
@text
)
@referables
=
extractor
.
all
end
def
find_referable
(
reference
)
def
find_
local_
referable
(
reference
)
referables
.
find
{
|
ref
|
ref
.
to_reference
==
reference
}
end
def
substitution_valid?
(
substituted
)
@original
==
markdown
(
substituted
)
@original
_html
==
markdown
(
substituted
)
end
def
markdown
(
text
)
Banzai
.
render
(
text
,
project:
@project
,
no_original_data:
true
)
Banzai
.
render
(
text
,
project:
@
source_
project
,
no_original_data:
true
)
end
end
end
...
...
spec/lib/gitlab/gfm/reference_
unfold
er_spec.rb
→
spec/lib/gitlab/gfm/reference_
rewrit
er_spec.rb
浏览文件 @
323d328c
require
'spec_helper'
describe
Gitlab
::
Gfm
::
Reference
Unfold
er
do
describe
Gitlab
::
Gfm
::
Reference
Rewrit
er
do
let
(
:text
)
{
'some text'
}
let
(
:old_project
)
{
create
(
:project
)
}
let
(
:new_project
)
{
create
(
:project
)
}
...
...
@@ -8,9 +8,9 @@ describe Gitlab::Gfm::ReferenceUnfolder do
before
{
old_project
.
team
<<
[
user
,
:guest
]
}
describe
'#
unfold
'
do
describe
'#
rewrite
'
do
subject
do
described_class
.
new
(
text
,
old_project
,
user
).
unfold
(
new_project
)
described_class
.
new
(
text
,
old_project
,
user
).
rewrite
(
new_project
)
end
context
'multiple issues and merge requests referenced'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录