module Pretzel::Extension::Templating::Route

Public Class Methods

included(_class) click to toggle source
# File lib/pretzel/ext/templating.rb, line 8
def self.included(_class)
  Liquid::Template.file_system = Liquid::LocalFileSystem.new("#{Dir.pwd}/views/includes") 
end

Public Instance Methods

render(path, locals = {}) click to toggle source
# File lib/pretzel/ext/templating.rb, line 12
def render(path, locals = {})
  response["Content-Type"] = "text/html"
  layout_file = File.expand_path("#{Dir.pwd}/views/layout.liquid")
  raw_file = File.expand_path("#{Dir.pwd}/views/#{path.to_s}.liquid")
  
  template = Liquid::Template.parse(File.read(raw_file))

  if File.exist?(layout_file)
    # Always render the layout, unless explicitly told otherwise.
    unless locals["layout"] == false
      layout = Liquid::Template.parse(File.read(layout_file))
      layout.render({ "template" => template.render(locals) })
    else
      template.render(locals)
    end
  else
    template.render(locals)
  end
end