= Amrita2 -  a xml/xhtml template library for Ruby

== Summary

Amrita2 is a a xml/xhtml template library for Ruby.
It makes html documents from a template and a model data.

=== Key feature

  specify "XML template" do
    t = Amrita2::Template.new <<-END
      <html>
        <head>
          <title am:src="page_title" />
       </head>
       <body>
         <h1 am:src="header_title" />
          <p class="text" am:src="text">
             <span am:src="template" /> is a html template library for <span am:src="lang" />
         </p>
       </body>
      </html>
    END

    data = {
      :page_title=>'Amrita2',
      :header_title=>'Hello, Amrita2',
      :text=>{
        :template => 'Amrita2',
        :lang => 'Ruby'
      }
    }
    expected = <<-END
      <html>
      <head>
        <title>Amrita2</title>
      </head>
      <body>
        <h1>Hello, Amrita2</h1>
        <p class="text">Amrita2 is a html template library for Ruby</p>
      </body>
      </html>
    END
    #
    t.render_with(data).should_be_samexml_as(expected)

    t2 = Amrita2::Template.new <<-END
      <<html<
        <<head<
          <<title:page_title>>
        <<body<
          <<h1:header_title>>
          <<p class="text":text<
             <<:template>> is a html template library for <<:lang>>
    END
    #
    t2.render_with(data).should_be_samexml_as(expected)
  end

* The template for amrita2 is a pure html/xhtml document without no
  special tag like <?...?> or <% .. %>

* The template can be written by designers using almost any xhtml/xml
  Editor.

* Need no change on Ruby code to change the view of _dynamic_ part
  (not only static part) of the template

* The model data may be standard Ruby data, Hash, Array, String... or
  an instance of a classes you made.

* The output is controlled by _data_ not by logic. So It's easy to
  write, test, debug code. (Good for eXtreamPrograming)

Amrita2 mixes a template and model data up to a html document naturally
matching the +id+ attribute of XML element to model data.

=== Current version and roadmap

Current version is 2.0.2 .

=== Setup

 # gem install amrita2

== document

Start spec/intro.rb or Amrita2 Wiki (http://retro.brain-tokyo.net/projects/amrita2/wiki/Amrita2)

== support/developement

* http://retro.brain-tokyo.net/projects/amrita2/blog

== Download

* http://rubyforge.org/projects/amrita2

== License

Amrita2 is Copyright (c) 2008 Taku Nakajima
<tnakajima@brain-tokyo.jp>.  It is free software, and may be
redistributed under the terms specified in the README file of the Ruby
distribution.

Sample source code under sample/depot is Amrita2 version of
Depot Application of "Agile Web Development with Rails".

  http://www.pragprog.com/titles/rails2/source_code

Sample source code under sample/login_engine is Amrita2 version of LoginEngine.

  http://rails-engines.org/news/2007/01/23/farewell-login_engine-/
