class Deas::Kramdown::Source

Attributes

cache[R]
doc_opts[R]
root[R]

Public Class Methods

new(root, opts) click to toggle source
# File lib/deas-kramdown/source.rb, line 11
def initialize(root, opts)
  @root     = Pathname.new(root.to_s)
  @doc_opts = opts[:doc_opts] || {}
  @cache    = opts[:cache] ? Hash.new : NullCache.new
end

Public Instance Methods

compile(template_name, content) click to toggle source
# File lib/deas-kramdown/source.rb, line 21
def compile(template_name, content)
  doc(content).to_html
end
doc(content) click to toggle source
# File lib/deas-kramdown/source.rb, line 25
def doc(content)
  Kramdown::Document.new(content, @doc_opts)
end
inspect() click to toggle source
# File lib/deas-kramdown/source.rb, line 29
def inspect
  "#<#{self.class}:#{'0x0%x' % (object_id << 1)}"\
  " @root=#{@root.inspect}"\
  " @doc_opts=#{@doc_opts.inspect}>"
end
render(template_name) click to toggle source
# File lib/deas-kramdown/source.rb, line 17
def render(template_name)
  load(template_name).to_html
end

Private Instance Methods

load(template_name) click to toggle source
# File lib/deas-kramdown/source.rb, line 37
def load(template_name)
  @cache[template_name] ||= begin
    file_path = source_file_path(template_name).to_s
    content = File.send(File.respond_to?(:binread) ? :binread : :read, file_path)
    doc(content)
  end
end
source_file_path(template_name) click to toggle source
# File lib/deas-kramdown/source.rb, line 45
def source_file_path(template_name)
  Dir.glob(self.root.join("#{template_name}*")).first
end