From b5d4a9614915b9e906c1b2fb753f28ea538ec81d Mon Sep 17 00:00:00 2001 From: John Piasetzki Date: Thu, 23 May 2013 22:06:15 -0400 Subject: [PATCH 1/2] Refactored site.rb, I tried to clean a bunch of the methods code climate was complaining about --- lib/jekyll/site.rb | 60 +++++++++++++++++----------------------------- 1 file changed, 22 insertions(+), 38 deletions(-) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index e8b65135..c572cf34 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -138,34 +138,19 @@ module Jekyll entries = Dir.chdir(base) { filter_entries(Dir.entries('.')) } self.read_posts(dir) - - if self.show_drafts - self.read_drafts(dir) - end - + self.read_drafts(dir) if self.show_drafts self.posts.sort! - - # limit the posts if :limit_posts option is set - if limit_posts > 0 - limit = self.posts.length < limit_posts ? self.posts.length : limit_posts - self.posts = self.posts[-limit, limit] - end + limit_posts! if limit_posts > 0 # limit the posts if :limit_posts option is set entries.each do |f| f_abs = File.join(base, f) - f_rel = File.join(dir, f) if File.directory?(f_abs) - next if self.dest.sub(/\/$/, '') == f_abs - read_directories(f_rel) + f_rel = File.join(dir, f) + read_directories(f_rel) unless self.dest.sub(/\/$/, '') == f_abs + elsif has_yaml_header?(f_abs) + pages << Page.new(self, self.source, dir, f) else - first3 = File.open(f_abs) { |fd| fd.read(3) } - if first3 == "---" - # file appears to have a YAML header so process it as a page - pages << Page.new(self, self.source, dir, f) - else - # otherwise treat it as a static file - static_files << StaticFile.new(self, self.source, dir, f) - end + static_files << StaticFile.new(self, self.source, dir, f) end end end @@ -255,14 +240,8 @@ module Jekyll # files to be written files = Set.new - self.posts.each do |post| - files << post.destination(self.dest) - end - self.pages.each do |page| - files << page.destination(self.dest) - end - self.static_files.each do |sf| - files << sf.destination(self.dest) + [self.posts, self.pages, self.static_files].flatten.each do |item| + files << item.destination(self.dest) end # adding files' parent directories @@ -290,14 +269,8 @@ module Jekyll # # Returns nothing. def write - self.posts.each do |post| - post.write(self.dest) - end - self.pages.each do |page| - page.write(self.dest) - end - self.static_files.each do |sf| - sf.write(self.dest) + [self.posts, self.pages, self.static_files].flatten.each do |item| + item.write(self.dest) end end @@ -430,5 +403,16 @@ module Jekyll @deprecated_relative_permalinks = true end end + + private + + def has_yaml_header?(file) + "---" == File.open(file) { |fd| fd.read(3) } + end + + def limit_posts! + limit = self.posts.length < limit_posts ? self.posts.length : limit_posts + self.posts = self.posts[-limit, limit] + end end end From 13fd798ec0a62cdef8cbe62d68488d8d5797ff52 Mon Sep 17 00:00:00 2001 From: John Piasetzki Date: Sun, 26 May 2013 16:15:24 -0400 Subject: [PATCH 2/2] Extracted each method --- lib/jekyll/site.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/jekyll/site.rb b/lib/jekyll/site.rb index c572cf34..1542f0ef 100644 --- a/lib/jekyll/site.rb +++ b/lib/jekyll/site.rb @@ -240,9 +240,7 @@ module Jekyll # files to be written files = Set.new - [self.posts, self.pages, self.static_files].flatten.each do |item| - files << item.destination(self.dest) - end + site_files_each { |item| files << item.destination(self.dest) } # adding files' parent directories dirs = Set.new @@ -269,9 +267,7 @@ module Jekyll # # Returns nothing. def write - [self.posts, self.pages, self.static_files].flatten.each do |item| - item.write(self.dest) - end + site_files_each { |item| item.write(self.dest) } end # Construct a Hash of Posts indexed by the specified Post attribute. @@ -404,6 +400,14 @@ module Jekyll end end + def site_files_each + %w(posts pages static_files).each do |type| + self.send(type).each do |item| + yield item + end + end + end + private def has_yaml_header?(file)