Dancer::Template::Haml - Haml wrapper for Dancer


Dancer-Template-Haml documentation Contained in the Dancer-Template-Haml distribution.

Index


Code Index:

NAME

Top

Dancer::Template::Haml - Haml wrapper for Dancer

SYNOPSIS

Top

 set template => 'haml';

 get '/bazinga', sub {
 	template 'bazinga' => {
 		title => 'Bazinga!',
 		content => 'Bazinga?',
 	};
 };

Then, on views/bazinga.haml:

 !!!
 %html{ :xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"}
   %head
     %title= title
   %body
     #content
       %strong= content

And... bazinga!

DESCRIPTION

Top

This class is an interface between Dancer's template engine abstraction layer and the Text::Haml module.

In order to use this engine, set the following setting as the following:

    template: haml

This can be done in your config.yml file or directly in your app code with the set keyword.

SEE ALSO

Top

Dancer, Text::Haml

TODO

Top

The usage of helpers, filters and attributes. This will be implemented once Dancer has capabilities to take specific parameters for each templating engine it supports.

AUTHOR

Top

This module has been written by David Moreno, http://stereonaut.net/. This module was heavily based on Franck Cuny's Dancer::Template::MicroTemplate.

LICENSE

Top

This module is free software and is released under the same terms as Perl itself.


Dancer-Template-Haml documentation Contained in the Dancer-Template-Haml distribution.

package Dancer::Template::Haml;

use strict;
use warnings;

use Text::Haml;

use vars '$VERSION';
use base 'Dancer::Template::Abstract';

our $VERSION = '0.01';

my $_engine;

sub init { $_engine = Text::Haml->new }

sub render($$$) {
    my ($self, $template, $tokens) = @_;

	$template =~ s/\.tt$/\.haml/;

    die "'$template' is not a regular file"
      if ref($template) || (!-f $template);

    my $content = q{};
    $content = $_engine->render_file($template, %$tokens)
		or die $_engine->error;
    return $content;
}

1;
__END__