Ruby as a templating language
Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmarks
lib
tests
.gitignore
.travis.yml
COPYING
Gemfile
README.rdoc
Rakefile
VERSION
flott.gemspec

README.rdoc

Flott - Floris Tolle Templates

This is ruby templating system with some unique features.

Installation

Use rubygems and just type:

# gem install permutation

Usage

If you want to play with the parser it's best to use the Flott method:

Flott('1 + 1 = [=1 + 1]') # => "1 + 1 = 2"

However if you want to take advantage of the directory tree walking and inclusion features, you have to use actual files:

If two template files are stored in the current directory. One file “header”:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Hello [=@name]!</title>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
 </head>
 <body>

And one file “template”:

 [^header-]
 <h1>Hello [=@name]!</h1>
 [for i in 1..6
 if i % 2 == 0-]
 <b>Hello [=@name]!</b>
 [else-]
 <i>Hello [=@name]!</i>
 [end
 end-]
 </body>
</html>

The parser can be used like this

fp = Flott::Parser.from_filename('template')
env = Flott::Environment.new
env[:name] = "Florian"
fp.evaluate(env)

Or this:

puts Flott.string_from_file(filename, :name => "Florian")

You should also take a look at the other convenience methods in the Flott module.

The output is created by including “header” into “template” with the [^filename] syntax. [!@name] is a shortcut for [print @name] while [=@name] first calls Flott::Parser.escape on @name. It's also possible to just print or puts strings.

Note the use of the assignment to the instance variable @name before executing the template. The state passed to Parser#evaluate as an environment and can be referenced in the template itself with [=@name].

After execution the output is:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>Hello Florian!</title>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">
 </head>
 <body>

 <h1>Hello Florian!</h1>
 <i>Hello Florian!</i>
 <b>Hello Florian!</b>
 <i>Hello Florian!</i>
 <b>Hello Florian!</b>
 <i>Hello Florian!</i>
 <b>Hello Florian!</b>
 </body>
</html>

Author

Florian Frank flori@ping.de

License

This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 as published by the Free Software Foundation: www.gnu.org/copyleft/gpl.html