最近Rubyの記事が多い気がする
ちょっと前まで一部好事家のものというイメージすらあったRubyだが、最近はずいぶんと市民権を得ている気がする。ドキュメントの乏しさからすれば奇跡的ですらある。いや、Rubyそのもののできは以前から言っているようにすばらしいものだし、Rubyほどプログラミングをしていて心躍る言語は(少なくとも私は)ない。
ということで、最近、Webアプリケーションにおけるプレゼンテーション層のためのライブラリを組んだ。Amritaも好きだったが、手になじまないところが若干あったのでフルスクラッチした。イメージはJavaSvript。たとえば↓のような内容のテンプレートとなるHTMLファイルがhoge.htmlという名前であったとする。
<html> <head> <title>サンプル</title> </head> <body> <h1>サンプル</h1> <p>ここを書き換えます。</p> </body> </html>
そして拙作ライブラリをつかったRubyスクリプトを↓こんな感じで打つ。
require 'chiro' doc = nil open('hoge.html', 'r') do |fh| doc = Chiro::Document.new(fh) end elem = doc.get_element_by_name('html.body.p') elem.inner_text = 'ハローワールド' elem.attributes('class') = 'default' puts doc
出力結果は以下↓の通り。
<html> <head> <title>サンプル</title> </head> <body> <h1>サンプル</h1> <p class='default'>ハローワールド</p> </body> </html>
他にも便利な機能がありますが、それはまた別の機会に。