class HamlRenderer

Public Class Methods

new(templatedir, outdir, verbose) click to toggle source
# File lib/gitstats/renderer/haml.rb, line 35
def initialize(templatedir, outdir, verbose)
  @templatedir = templatedir
  @outdir = outdir
  @verbose = verbose
  @engineConfig = {}
end

Public Instance Methods

handle?(file) click to toggle source
# File lib/gitstats/renderer/haml.rb, line 46
def handle?(file)
  file =~ /\.haml$/
end
name() click to toggle source
# File lib/gitstats/renderer/haml.rb, line 42
def name
  'haml'
end
render(file, stats) click to toggle source
# File lib/gitstats/renderer/haml.rb, line 50
def render(file, stats)
  ifile = File.join(@templatedir, file)
  ofile = File.join(@outdir, File.basename(file, '.haml') + '.html')

  lines = IO::readlines(ifile).join('')

  helper = HamlHelper.new(@templatedir, stats, @verbose, @engineConfig)

  engine = Haml::Engine.new(lines, @engineConfig)
  lines = engine.render(helper)

  if !helper.get_layout.nil?
    puts "rendering layout '#{helper.get_layout}' ..." if @verbose
    layout = IO::readlines(File.join(@templatedir, 'layouts', helper.get_layout + '.haml')).join('')
    engine = Haml::Engine.new(layout, @engineConfig)
    lines = engine.render(helper, :content => lines)
  end

  File.new(ofile, 'w').write(lines)
end