Sha256: 9af80c776f089ce3d7bb12dc62990887f5da4225778b4a8318303e148dd7a7e4
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
class HamlRenderer class HamlHelper attr_reader :stats def initialize(templatedir, stats, verbose) @templatedir = templatedir @stats = stats @verbose = verbose @layout = nil Dir.glob(File.join(templatedir, 'helpers', '*.rb')).sort.each do |file| eval(IO::readlines(file).join('')) end end def partial(name, hash = {}) name = name.to_s puts "rendering partial '#{name}' ..." if @verbose hash = hash.to_h unless hash.is_a? Hash lines = IO::readlines(File.join(@templatedir, 'partials', "#{name}.haml")).join('') engine = Haml::Engine.new(lines) engine.render(self, hash) end def layout(name) @layout = name.to_s end def get_layout @layout end end def initialize(templatedir, outdir, verbose) @templatedir = templatedir @outdir = outdir @verbose = verbose end def name 'haml' end def handle?(file) file =~ /\.haml$/ end 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) engine = Haml::Engine.new(lines) 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) lines = engine.render(Object.new, :content => lines) end File.new(ofile, 'w').write(lines) end end Renderer.register HamlRenderer
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
gitstats-ruby-1.0.1 | lib/gitstats/renderer/haml.rb |
gitstats-ruby-1.0.0 | lib/gitstats/renderer/haml.rb |