class OakTree::Template::Post

Public Class Methods

new(spec, post) click to toggle source
# File lib/oaktree/template/post.rb, line 13
def initialize spec, post
  @post = post
  @content = nil
  @spec = spec
  document = ::Kramdown::Document.new(@post.content)
  @content, warnings = ::OakTree::Kramdown::OakHtml.convert(document.root, :auto_id_prefix => @post.time.strftime('%Y_%m_%d_'))
  puts warnings unless warnings.empty?
end

Public Instance Methods

[](key) click to toggle source
# File lib/oaktree/template/post.rb, line 91
def [](key)
  if respond_to?(key)
    send(key)
  elsif key.to_s.end_with?('?')
    key = case key
    when Symbol then key.to_s.chomp('?').to_sym
    when String then key.to_s.chomp('?')
    else raise "Not sure what has happened here"
    end
    respond_to?(key) || @post.metadata.include?(key)
  else
    @post.metadata[key]
  end
end
content() click to toggle source
# File lib/oaktree/template/post.rb, line 59
def content
  @content
end
has_key?(key) click to toggle source
# File lib/oaktree/template/post.rb, line 87
def has_key?(key)
  respond_to?(key) || @post.metadata.include?(key) || key.to_s.end_with?('?')
end
post?() click to toggle source
# File lib/oaktree/template/post.rb, line 55
def post?
  @post.kind == :post
end
post_data() click to toggle source
# File lib/oaktree/template/post.rb, line 22
def post_data
  @post
end
public_path() click to toggle source
# File lib/oaktree/template/post.rb, line 67
def public_path
  @post.public_path
end
published?() click to toggle source
# File lib/oaktree/template/post.rb, line 75
def published?
  @post.status == :published
end
slug() click to toggle source
# File lib/oaktree/template/post.rb, line 71
def slug
  @post.slug
end
static?() click to toggle source
# File lib/oaktree/template/post.rb, line 51
def static?
  @post.kind == :static
end
status() click to toggle source
# File lib/oaktree/template/post.rb, line 83
def status
  @post.status
end
time() click to toggle source
# File lib/oaktree/template/post.rb, line 63
def time
  proc_for_datetime(@post.time)
end
title() click to toggle source
# File lib/oaktree/template/post.rb, line 26
def title
  @post.title
end
unpublished?() click to toggle source
# File lib/oaktree/template/post.rb, line 79
def unpublished?
  ! published?
end
url() click to toggle source
# File lib/oaktree/template/post.rb, line 30
def url
  if source_link?
    source_link
  else
    permalink
  end
end