/lib/banzai/filter/merge_request_reference_filter.rb
https://gitlab.com/vicvega/gitlab-ce · Ruby · 41 lines · 31 code · 6 blank · 4 comment · 1 complexity · 1bed0c8269d63a5a856171418a868607 MD5 · raw file
- module Banzai
- module Filter
- # HTML filter that replaces merge request references with links. References
- # to merge requests that do not exist are ignored.
- #
- # This filter supports cross-project references.
- class MergeRequestReferenceFilter < AbstractReferenceFilter
- self.reference_type = :merge_request
- def self.object_class
- MergeRequest
- end
- def find_object(project, id)
- project.merge_requests.find_by(iid: id)
- end
- def url_for_object(mr, project)
- h = Gitlab::Routing.url_helpers
- h.namespace_project_merge_request_url(project.namespace, project, mr,
- only_path: context[:only_path])
- end
- def object_link_text_extras(object, matches)
- extras = super
- path = matches[:path] if matches.names.include?("path")
- case path
- when '/diffs'
- extras.unshift "diffs"
- when '/commits'
- extras.unshift "commits"
- when '/builds'
- extras.unshift "builds"
- end
- extras
- end
- end
- end
- end