summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-04-30 16:10:39 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-04-30 16:35:27 -0400
commit0027c2ddd78942e7fc266f68ccfdb17e2a525554 (patch)
tree1ade63953dfbbaa409f2faf48c1320cb928d4574 /lib
parent466bec7caa4708f3d0c671b9fab135ed2c3dcdc1 (diff)
downloadgitlab-ce-0027c2ddd78942e7fc266f68ccfdb17e2a525554.tar.gz
Add Project#get_issue
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/markdown/issue_reference_filter.rb13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/gitlab/markdown/issue_reference_filter.rb b/lib/gitlab/markdown/issue_reference_filter.rb
index 4b360369d37..6812b933fef 100644
--- a/lib/gitlab/markdown/issue_reference_filter.rb
+++ b/lib/gitlab/markdown/issue_reference_filter.rb
@@ -44,21 +44,20 @@ module Gitlab
# Returns a String with `#123` references replaced with links. All links
# have `gfm` and `gfm-issue` class names attached for styling.
def issue_link_filter(text)
- self.class.references_in(text) do |match, issue, project_ref|
+ self.class.references_in(text) do |match, id, project_ref|
project = self.project_from_ref(project_ref)
- if project && project.issue_exists?(issue)
- # FIXME (rspeicher): Law of Demeter
- push_result(:issue, project.issues.where(iid: issue).first)
+ if project && issue = project.get_issue(id)
+ push_result(:issue, issue)
- url = url_for_issue(issue, project, only_path: context[:only_path])
+ url = url_for_issue(id, project, only_path: context[:only_path])
- title = escape_once("Issue: #{title_for_issue(issue, project)}")
+ title = escape_once("Issue: #{title_for_issue(id, project)}")
klass = reference_class(:issue)
%(<a href="#{url}"
title="#{title}"
- class="#{klass}">#{project_ref}##{issue}</a>)
+ class="#{klass}">#{project_ref}##{id}</a>)
else
match
end