Fix :follow_links option not doing anything when set to false

pull/656/merge
Thibaut Courouble 8 years ago
parent ba6d80b27f
commit dd8c80060a

@ -30,15 +30,15 @@ module Docs
end
def skip_links?
if context[:skip_links].is_a? Proc
context[:skip_links].call self
else
context[:skip_links]
end
return context[:skip_links].call(self) if context[:skip_links].is_a?(Proc)
return true if context[:skip_links]
false
end
def follow_links?
!(context[:follow_links] && context[:follow_links].call(self) == false)
return false if context[:follow_links] == false
return false if context[:follow_links].is_a?(Proc) && context[:follow_links].call(self) == false
true
end
def to_internal_url(str)

@ -331,11 +331,26 @@ class InternalUrlsFilterTest < MiniTest::Spec
end
end
context "context[:follow_links] is a block" do
context "context[:follow_links]" do
before do
@body = link_to context[:url]
end
context "when it is false" do
before do
context[:follow_links] = false
end
it "doesn't set :internal_urls" do
refute internal_urls
end
it "replaces urls" do
refute_equal @body, filter_output_string
end
end
context "when it is a block" do
it "calls the block with the filter instance" do
context[:follow_links] = ->(arg) { @arg = arg; nil }
filter.call
@ -366,6 +381,7 @@ class InternalUrlsFilterTest < MiniTest::Spec
end
end
end
end
context "context[:skip_link] is a block" do
before do

Loading…
Cancel
Save