amritaを使おう!

amritaッテナニ?

Rubyにおけるhtml/xhtmlテンプレートライブラリです。 テンプレートがhtml/xhtmlそのままなので、 プログラム部分と表示部分の切り離しがとても楽にできます。

amritaをインストールする

amrita 1.0.2の場合です。

amrita本体とstrscanが必要です。

amrita
srtscan

次のライブラリを使用する場合は他にも必要なものがあります。 使わなければいりません。

amrita/ams

ただし、フォーマットにyamlを使う場合のみ。

amrita/amx

どちらか一方でいいです。

amrita/cgikit
amrit/xml

rexmlはどちらか一方を。 uconvはなくても動きますが、UTF-8を変換してくれません。

この中でコンパイルの必要があるのはstrscanとuconvのみです。 strscanはC版でなくpure Ruby版もありますが、 速度を考えるとC版をお勧めします。

uconvはなくてもいいですが、あったら後々便利だと思います。

今回は、amrita、strscan、rexml-stable、uconvを入れてみようと思います。

コンパイル

基本的にはFTPでの/ディレクトリ*1 で行います。 SSHの接続方法は自分で調べてください。

strscan

展開したフォルダの中のext/cscan/の中身を/へ移します。 後は、SSHで

rbash-2.05a$ ruby extconf.rb
rbash-2.05a$ make

できたcscan.soをダウンロード。

uconv

展開したフォルダ名の中身を/へ移します。 ただし、sampleは要りません。 後は、SSHで

rbash-2.05a$ ruby extconf.rb
rbash-2.05a$ make

できたuconv.soをダウンロード。

ファイルの展開

libディレクトリ用意し、その下に全てのファイルを置きます。

lib/
 |-- amrita/
 |    |-- ams.rb
 ~    ~
 |    `-- xml.rb
 |-- rexml/
 |    |-- dtd/
 |    |    |-- attlistdecl.rb
 ~    ~    ~
 |    |    `-- notationdecl.rb
 |    |-- attlistdecl.rb
 ~    ~
 |    `-- xpath_parser.rb
 |-- cscan.so
 |-- rscan.rb
 |-- strscan.rb
 |-- scanner.rb
 `-- uconv.so

次に、/private_dataにそのまま全てを置きます。 ディレクトリは700、ファイルは600です。 また、*.rbはアスキーモード、*.soはバイナリモードで転送してください。

面倒な人が多そうなので、tar.gzで固めました。

コンパイルはs1で行いましたが、他のサーバでも動くでしょう。 実はテストはまだです…。

amritaを使ってみる。

実際使ってみましょう。 まず、環境変数RUBYLIB/virtual/***/private_data/libに設定します。 .htaccessに次の一行をくわえます。 文字列の***には自分のユーザー名を入れてください。 *2

SetEnv RUBYLIB /virtual/***/private_data/lib

後は、適当にrequireするだけです。 amritaのリファレンスを見ながら、色々やってみて下さい。

その他

amrita以外にも欲しいものがたぶん出てくるでしょう。 例えば、zlibやGDまたはlibpng等です。 しかし、同じようにやれば可能だと思います。 コンパイルもそんなに考えるほど難しいものではありません。 ただし、Rubyのライブラリはコンパイル方法が統一されているとは言えません。 それぞれのライブラリのreadme等を良く読んでください。

こんなの面倒だとお思いになるのであれば、 サポ板で要請すれば、 入れてくれるかも知れません…。

*1実際は"/virtual/ユーザー名"のディレクトリ

*2もし、予めRUBYLIBが設定されているのであれば、 /virtual/***/private_data/lib:$RUBYLIBにしてください。