2007-01-01から1ヶ月間の記事一覧

テーブル出力の略記法

ここでは、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という名前で何度かの試行錯誤を続けているので、次にリリースする時は、中途半端なものを公開したくありません。何らか…

Amrita2のマクロテンプレート

Amrita2はだいぶ進んでいるけど、ドキュメントを書くヒマがありません。そこで、面白そうな部分のRSpecのコードとごく簡単な説明をメモ程度にここに書いていきます。なお、以下のRSpecは全て動いてます。まず、マクロテンプレートについて。 context "Macro …

Amrita2のフックメソッド

こんなこと思いついた。 specify "render child" do t = Amrita2::TemplateText.new <<-END <% odd_even = Amrita2::Hook.new do list.each_with_index do |item, n| if (item % 2) == 0 render_child(:even, :item => item ) else render_child(:odd, :item…