Amrita2/2007

デイブトーマス本のサンプルをAmrita2化してみた

Agile Web Development With Rails: A Pragmatic Guide (The Facets Of Ruby Series)これのチュートリアル部分で使われている depot というアプリを、開発中のAmrita2最新版で書いてみました。storeコントローラーのViewだけ rhtml版と対比して示します。Vie…

マクロの利用例

これは、Amrita2+Gettextによって日本語化したLoginEngineのユーザ情報修正画面です。この上半分の部分テンプレートでは、マクロを活用してAmrita2化してみました。元のrhtmlは次のようになっています。 <div class="user_edit"> <table> <%= form_input changeable(user, "firstname"), "F</table></div>…

自動Gettext

Amrita2にGettextと連動する機能を実装しました。これを利用すると、ビューを最小限の手間で国際化することができます。サンプルとして LoginEngineをAmrita2化+日本語化していますが、たとえば、homeというビューは次のようになります。元のrhtmlのファイル…

テーブル出力の略記法

ここでは、AmXMLのテーブル関係の機能を説明しますが、その前に、ハッシュと配列以外のオブジェクトの扱いについて説明します。 ハッシュ以外のデータの扱い 以下のテーブル出力のサンプルでは、以下のデータを使用します。 context "table" do WebSite = St…

フック

Amrita2では、テンプレートの展開方法は、与えたデータによって制御されます。しかし、必要なロジックが複雑である場合、そのロジックをデータの形式によって表現することが難しい場合や不可能な場合があります。その場合には、「フック」という機能を使用し…

属性の設定

Amrita2には、属性を設定する方法がいくつか用意されています。以下のデータを使って、これを説明していきます。 setup do @data = { :mail=>{ :no=>142990, :title=>"[ANN] Amrita2 1.9.5" } } @expected = <<-EOF <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/142990'>[ruby-talk:142990][ANN] Amrita2 1.9.5</a> E…

フィルター

Amrita2は filterという機能によって、与えられたデータを変換して出力することができます。 specify "Format" do t = Amrita2::Template.new <<-END <<:a|Format['(%-4.2f)']>> END t.render_with(:a=>1234.56).should_be_samexml_as('(1234.56)') end Formatが標準で用意されてい</:a|format['(%-4.2f)']>…

erbサポート

Amrita2は、eRubyをサポートしています。 include Amrita2::Runtime specify "simple erb" do t = Amrita2::Template.new <<-'END' <%= 1 + 2 %> END t.render_with(binding).should_be == " 3 " end eRubyを使用する時は、render_withにBindingオブジェクト…

AmXML

Amrita2は、AmritaV1.Xと同じくXMLドキュメントに対して、データを展開していくテンプレートエンジンです。Amrita2では、idではなく、am:srcという属性をキーとして使用します。 # テンプレート 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 t…</span></p></h1></body></html>

Amrita2の状況

Amrita2の開発は、昨年半ばから中断していましたが、年末年始ちょっとヒラメキがあって大幅に進展しました。しかし、これまでにAmrita2という名前で何度かの試行錯誤を続けているので、次にリリースする時は、中途半端なものを公開したくありません。何らか…