Commit 31172475 authored by Robert Speicher's avatar Robert Speicher
Browse files

Better guard against nil projects in ReferenceFilter

parent ebe980b48136
...@@ -25,7 +25,8 @@ def self.references_in(text) ...@@ -25,7 +25,8 @@ def self.references_in(text)
ISSUE_PATTERN = /(?<issue>([A-Z\-]+-)\d+)/ ISSUE_PATTERN = /(?<issue>([A-Z\-]+-)\d+)/
def call def call
return doc if project.default_issues_tracker? # Early return if the project isn't using an external tracker
return doc if project.nil? || project.default_issues_tracker?
replace_text_nodes_matching(ISSUE_PATTERN) do |content| replace_text_nodes_matching(ISSUE_PATTERN) do |content|
issue_link_filter(content) issue_link_filter(content)
......
...@@ -42,10 +42,11 @@ def reference_class(type) ...@@ -42,10 +42,11 @@ def reference_class(type)
# #
# Returns the updated Nokogiri::XML::Document object. # Returns the updated Nokogiri::XML::Document object.
def replace_text_nodes_matching(pattern) def replace_text_nodes_matching(pattern)
return doc if project.nil?
doc.search('text()').each do |node| doc.search('text()').each do |node|
content = node.to_html content = node.to_html
next if project.nil?
next unless content.match(pattern) next unless content.match(pattern)
next if ignored_ancestry?(node) next if ignored_ancestry?(node)
...@@ -59,6 +60,9 @@ def replace_text_nodes_matching(pattern) ...@@ -59,6 +60,9 @@ def replace_text_nodes_matching(pattern)
doc doc
end end
# Ensure that a :project key exists in context
#
# Note that while the key might exist, its value could be nil!
def validate def validate
needs :project needs :project
end end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment