From e69d77b4dfab9cbdede49ddfeb0feb0e35e6897a Mon Sep 17 00:00:00 2001 From: Matt Rogers & Persa Zula Date: Thu, 5 Dec 2013 22:54:18 -0600 Subject: [PATCH 1/2] Refactor post and draft object creation De-duplicate object creation between posts and drafts. Inject the name dependency through a parameter --- lib/jekyll/site.rb | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index 6ea36a2e..cb96c815 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -169,19 +169,14 @@ module Jekyll # # Returns nothing. def read_posts(dir) - entries = get_entries(dir, '_posts') + posts = read_things(dir, '_posts', Post) - # first pass processes, but does not yet render post content - entries.each do |f| - if Post.valid?(f) - post = Post.new(self, self.source, dir, f) - - if post.published && (self.future || post.date <= self.time) - aggregate_post_info(post) - end + posts.each do |post| + if post.published && (self.future || post.date <= self.time) + aggregate_post_info(post) end end - end + end # Read all the files in //_drafts and create a new Post # object with each one. @@ -190,15 +185,16 @@ module Jekyll # # Returns nothing. def read_drafts(dir) - entries = get_entries(dir, '_drafts') + drafts = read_things(dir, '_drafts', Draft) - # first pass processes, but does not yet render draft content - entries.each do |f| - if Draft.valid?(f) - draft = Draft.new(self, self.source, dir, f) + drafts.each do |draft| + aggregate_post_info(draft) + end + end - aggregate_post_info(draft) - end + def read_things(dir, magic_dir, klass) + get_entries(dir, magic_dir).each_with_object([]) do |entry, things| + things << klass.new(self, self.source, dir, entry) if klass.valid?(entry) end end From 6a13f7dd571ab8ef147299d1d398e0863907f9a8 Mon Sep 17 00:00:00 2001 From: Persa Zula Date: Thu, 5 Dec 2013 23:09:30 -0700 Subject: [PATCH 2/2] Modifying enumerator for 1.8.7 --- lib/jekyll/site.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index cb96c815..74d10fd5 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -193,8 +193,8 @@ module Jekyll end def read_things(dir, magic_dir, klass) - get_entries(dir, magic_dir).each_with_object([]) do |entry, things| - things << klass.new(self, self.source, dir, entry) if klass.valid?(entry) + things = get_entries(dir, magic_dir).map do |entry| + klass.new(self, self.source, dir, entry) if klass.valid?(entry) end end