« Nokogiri がまったく切れなくなたっと思ったら | トップページ | やっと Ruby で、目的通りに RSS パースできた、横浜も初勝利 »

2010年3月28日 (日)

やっとRuby の素晴らしさを実感

やっぱりPGは楽しいですね。

なかなか、PGの矛先がなかったのですが、意味論を学び、XMLをXSLTで変換をしたりして、意味を切り出すということを今までも行ってきたのですが。

CADの要素をリスト表現していたりしたので、XMLで意味づけされたモノをパースするのは、私のやりたいことでした。
そんな時、去年の Ruby world で、Ruby と XML の相性の良さを知らされ、やっと今年取り組んだのですが、まことに強力ですね。

ただ、これまでは、 Ruby というよりは、そのライブラリ(他の言語にも対応している)の力をお借りしていたわけですが、ここにきて Ruby の威力の恩恵を感じるようになってきました。

その第一は、Object 間の型変換です。

いちばん最初に恩恵を受けるのは、出力(Print等)ですね。 Object をそのまま出力指定すれば、かってに文字列(String)にしてくれます。

そして、実感するのは配列(Array)ではないでしょうか?追加、削除も簡単で、有効要素を一つずつ取り出してくれます。複数引数も戻り値も配列になっちぁいます。
そしてソートが簡単。こんな感じ。

        # 日付でソート
        list.sort! {|n, m|
            n.date <=> m.date        # <---- 昇順
            m.date <=> n.date        # <---- 降順
        }

それから、Ruby には型指定がないので、呼びだされた メソッド でクラスの名前を“class.name”で取り出し、処理を分岐できるし、アドレスポインタがないので、“__id__”でObject を識別できるようです。

あとは、メソッドのエリアス(Alias)が多いので、同じことをいろんな記述が可能で、非常に簡略にすることが可能であるとか、メソッドの呼び出しで引数は、カンマ(“,”)区切りでられつだけで良いとか、あまり括弧区切りを使わなくてよい記述が可能になっています。
ただ、ここのところは、C,C++ 使いだった吾輩には、ちょっぴり苦しいですね。

まぁ、C,C++ だったら、自分で作る必要のある機能が、標準ライブラリやOSS提供であるというのが素晴らしい。ほんとうに役立ちます。

ところで、現在は、RSS のパースを行っているのですが、Web browser で正常に表示できるものが、うまく要素に変換できません。ライブラリの中でエラーが発生しています。これから、ソースを追ってみようかな?

 

|

« Nokogiri がまったく切れなくなたっと思ったら | トップページ | やっと Ruby で、目的通りに RSS パースできた、横浜も初勝利 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/193783/47928836

この記事へのトラックバック一覧です: やっとRuby の素晴らしさを実感:

« Nokogiri がまったく切れなくなたっと思ったら | トップページ | やっと Ruby で、目的通りに RSS パースできた、横浜も初勝利 »