Reset posts, layouts, and categories before processing to prevent duplication when regenerating

This commit is contained in:
Nick Quaranto 2009-04-03 08:39:28 -04:00
parent 3d77c20578
commit 8d0e3dd0e2
2 changed files with 19 additions and 2 deletions

View File

@ -17,11 +17,14 @@ module Jekyll
self.pygments = config['pygments'] self.pygments = config['pygments']
self.permalink_style = config['permalink'].to_sym self.permalink_style = config['permalink'].to_sym
self.reset
self.setup
end
def reset
self.layouts = {} self.layouts = {}
self.posts = [] self.posts = []
self.categories = Hash.new { |hash, key| hash[key] = Array.new } self.categories = Hash.new { |hash, key| hash[key] = Array.new }
self.setup
end end
def setup def setup
@ -85,6 +88,7 @@ module Jekyll
# #
# Returns nothing # Returns nothing
def process def process
self.reset
self.read_layouts self.read_layouts
self.transform_pages self.transform_pages
self.write_posts self.write_posts

View File

@ -9,6 +9,19 @@ class TestSite < Test::Unit::TestCase
@site = Site.new(Jekyll.configuration) @site = Site.new(Jekyll.configuration)
end end
should "reset data before processing" do
clear_dest
@site.process
before_posts = @site.posts.length
before_layouts = @site.layouts.length
before_categories = @site.categories.length
@site.process
assert_equal before_posts, @site.posts.length
assert_equal before_layouts, @site.layouts.length
assert_equal before_categories, @site.categories.length
end
should "read layouts" do should "read layouts" do
@site.read_layouts @site.read_layouts
assert_equal ["default", "simple"].sort, @site.layouts.keys.sort assert_equal ["default", "simple"].sort, @site.layouts.keys.sort