2004-11-06から1日間の記事一覧

ripper 週末クッキング その5 シリアライザーの分離

というわけで、解析部分とシリアライズ部分を分けてみた。 いまのとこ、素のHTMLを一枚生成するのと、はてな用の文字列を生成するのと二種類。 ソースはこんなかんじ。 とおもったら、 |と< >が干渉して途中でおかしくなりやがりますね。やれやれ。強引に置…

ripper 週末クッキング その4 できました

まず、いろいろ勘違いしてたところを訂正。 on__scanが返すイベントは、Parser Eventsじゃなくて、Lexer Eventsのほうだった。Lexerのほうが字句解析なんだから、スキャナーのon_scanでフックできるイベントはLexerのほうだよね。 そして、ハイライトするた…

ripper 週末クッキング その3 ripperが吐くイベント

on__spは定義されてなかったけど、method_missingで拾えたのがon__spくらいだったので、他のメソッド(イベント)はあらかじめ定義されていると当りをつけて、lib/ripper.rbを読んでみた。予想どおり、on__xxなるメソッドが羅列されている。Parser EventsとLex…

ripper 週末クッキング その2 ripperのお勉強

まずサンプルをたぐってみる。 count-if.rbがやることがわかりやすくてよいかも。短いし、ということで読む。 わかったこと Ripperを継承したクラスが基本 Ripperには、解析する文字列を与えてnew メソッドを定義して、parseで解析開始。あとはメソッドまか…

ripper 週末クッキング その1 ripperはどこに?

ripperってどこに転がってるんだっけ?いきなり見つかりません。 http://rubyforge.org/projects/ripper/ のCVSから拾ってくればいいのかな。なんか古そうだけど。最近、1.9に統合されたという話を見るのだが、1.8系に対応したripperってもう開発ストップ? …

ripper 週末クッキング その0

「rubyの文法は汚ない。解析する気すら起きない」という友人Tの言葉に思わず同意してしまったので、そういう問題を解決するために作られている(はずの)Rubyソース解析ライブラリripperを使って、RubyソースをHTMLにしてハイライト(色付け)するスクリプトを書…