aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Renberg (IQAndreas) <iq_andreas@hotmail.com>2013-10-19 05:45:03 +0200
committerAndreas Renberg (IQAndreas) <iq_andreas@hotmail.com>2013-10-19 05:45:03 +0200
commit797aeb50744fb72444a569a56818126740cd9f36 (patch)
tree04e0e03c482278161f9134428dcb891c220bdf7a
parent4fd754a76207c1c55f657891dc7049cf76f5f27e (diff)
downloadmy_new_personal_website-797aeb50744fb72444a569a56818126740cd9f36.tar.xz
my_new_personal_website-797aeb50744fb72444a569a56818126740cd9f36.zip
Call overridden version of `to_liquid` and remove duplicate code
Make sure to call "overidden" method which keeps us nice and compatible so we don't need to keep up with whatever Jekyll usually does, and make sure to include it in our overriden method. I have had it with these monkey-patching methods in this Monday-to- Friday language! Add method `liquid_date_attributes`. Cleanup the Post and Page overrides to be more similar.
-rw-r--r--plugins/date.rb53
1 files changed, 18 insertions, 35 deletions
diff --git a/plugins/date.rb b/plugins/date.rb
index 49fb79a3..24607ef8 100644
--- a/plugins/date.rb
+++ b/plugins/date.rb
@@ -41,6 +41,15 @@ module Octopress
end
date_formatted
end
+
+ # Returns the date-specific liquid attributes
+ def liquid_date_attributes
+ date_format = self.site.config['date_format']
+ data = {}
+ data['date_formatted'] = format_date(self.data['date'], date_format) if self.data.has_key?('date')
+ data['updated_formatted'] = format_date(self.data['updated'], date_format) if self.data.has_key?('updated')
+ data
+ end
end
end
@@ -51,48 +60,22 @@ module Jekyll
class Post
include Octopress::Date
- # Convert this post into a Hash for use in Liquid templates.
- #
- # Returns <Hash>
+ # Convert this Convertible's data to a Hash suitable for use by Liquid.
+ # Overrides the default return data and adds any date-specific liquid attributes
+ alias :super_to_liquid :to_liquid
def to_liquid
- date_format = self.site.config['date_format']
- self.data.deep_merge({
- "title" => self.data['title'] || self.slug.split('-').select {|w| w.capitalize! || w }.join(' '),
- "url" => self.url,
- "date" => self.date,
- # Monkey patch
- "date_formatted" => format_date(self.date, date_format),
- "updated_formatted" => self.data.has_key?('updated') ? format_date(self.data['updated'], date_format) : nil,
- "id" => self.id,
- "categories" => self.categories,
- "next" => self.next,
- "previous" => self.previous,
- "tags" => self.tags,
- "content" => self.content })
+ super_to_liquid.deep_merge(liquid_date_attributes)
end
end
class Page
include Octopress::Date
- # Initialize a new Page.
- #
- # site - The Site object.
- # base - The String path to the source.
- # dir - The String path between the source and the file.
- # name - The String filename of the file.
- def initialize(site, base, dir, name)
- @site = site
- @base = base
- @dir = dir
- @name = name
-
- self.process(name)
- self.read_yaml(File.join(base, dir), name)
- # Monkey patch
- date_format = self.site.config['date_format']
- self.data['date_formatted'] = format_date(self.data['date'], date_format) if self.data.has_key?('date')
- self.data['updated_formatted'] = format_date(self.data['updated'], date_format) if self.data.has_key?('updated')
+ # Convert this Convertible's data to a Hash suitable for use by Liquid.
+ # Overrides the default return data and adds any date-specific liquid attributes
+ alias :super_to_liquid :to_liquid
+ def to_liquid
+ super_to_liquid.deep_merge(liquid_date_attributes)
end
end
end