Skip to content

Commit 475bdf9

Browse files
Radoslav Karlíkjekyllbot
authored andcommitted
Allow redirects from and for subclasses of page and document (#204)
Merge pull request 204
1 parent 5ecf4ce commit 475bdf9

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

lib/jekyll-redirect-from/generator.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def generate(site)
1616

1717
# Must duplicate pages to modify while in loop
1818
(site.docs_to_write + site.pages.dup).each do |doc|
19-
next unless JekyllRedirectFrom::CLASSES.include?(doc.class)
19+
next unless redirectable_document?(doc)
2020

2121
generate_redirect_from(doc)
2222
generate_redirect_to(doc)
@@ -54,6 +54,10 @@ def generate_redirects_json
5454
site.pages << page
5555
end
5656

57+
def redirectable_document?(doc)
58+
doc.is_a?(Jekyll::Document) || doc.is_a?(Jekyll::Page)
59+
end
60+
5761
def generate_redirects_json?
5862
site.config.dig("redirect_from", "json") != false
5963
end

spec/jekyll_redirect_from/generator_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,4 +154,18 @@
154154
end
155155
end
156156
end
157+
158+
context "redirectable_document?" do
159+
let(:generator) { JekyllRedirectFrom::Generator.new }
160+
161+
it "accepts subclasses of Jekyll::Document" do
162+
SubclassOfJekyllDocument = Class.new(Jekyll::Document) { define_method(:initialize) {} }
163+
expect(generator.send(:redirectable_document?, SubclassOfJekyllDocument.new)).to be_truthy
164+
end
165+
166+
it "accepts subclasses of Jekyll::Page" do
167+
SubclassOfJekyllPage = Class.new(Jekyll::Page) { define_method(:initialize) {} }
168+
expect(generator.send(:redirectable_document?, SubclassOfJekyllPage.new)).to be_truthy
169+
end
170+
end
157171
end

0 commit comments

Comments
 (0)