class Dropdown::Post

Attributes

reader[R]
source[R]

Public Class Methods

new(source, reader) click to toggle source
# File lib/dropdown/post.rb, line 29
def initialize(source, reader)
  @source = source
  @reader = reader
end

Public Instance Methods

author() click to toggle source
# File lib/dropdown/post.rb, line 9
def author
  metadata[:author]
end
body() click to toggle source
# File lib/dropdown/post.rb, line 17
def body
  content
end
date() click to toggle source
# File lib/dropdown/post.rb, line 13
def date
  Date.parse metadata[:date]
end
excerpt() click to toggle source
# File lib/dropdown/post.rb, line 21
def excerpt
  unless @excerpt
    extractor = Dropdown::Parsers::ExcerptExtractor.new(content)
    @excerpt = extractor.extract
  end
  @excerpt
end
title() click to toggle source
# File lib/dropdown/post.rb, line 5
def title
  metadata[:title]
end

Private Instance Methods

content() click to toggle source
# File lib/dropdown/post.rb, line 44
def content
  @content ||= reader.read(@source)
end
metadata() click to toggle source
# File lib/dropdown/post.rb, line 36
def metadata
  unless @metadata
    @metadata = Dropdown::Parsers::MetadataParser.new(content)
    @metadata.parse
  end
  @metadata.headers
end