最近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>

他にも便利な機能がありますが、それはまた別の機会に。