jekyll/lib/autoblog/post.rb

43 lines
871 B
Ruby

module AutoBlog
class Post
MATCHER = /^(\d+-\d+-\d+)-(.*)\.([^.]+)$/
def self.valid?(name)
name =~ MATCHER
end
attr_accessor :date, :slug, :ext
attr_accessor :data, :contents
def initialize(base, name)
@base = base
@name = name
self.process(name)
self.read_yaml(base, name)
end
def process(name)
m, date, slug, ext = *name.match(MATCHER)
self.date = Time.parse(date)
self.slug = slug
self.ext = ext
end
def url
self.date.strftime("/%Y/%m/%d/") + self.slug
end
def read_yaml(base, name)
self.contents = File.read(File.join(base, name))
if self.contents =~ /^(---\n.*?)\n---\n/
self.contents = self.contents[($1.size + 5)..-1]
self.data = YAML.load($1)
end
end
end
end