Ruby

RSS Parser の Listener について

前回 REXML::Document.parse_stream を調べたことから、tag_start、tag_end などが解析時に主な処理をしていることが分かりました。 そのため今回は tag_start から Rss オブジェクトが作られるところを解析したいと思います。 Rss オブジェクトはどのように…

REXML::StreamParser の使い方

REXML Parser について簡単に調べてみます。 lib/rss/rexmlparser.rb にて REXML は下記のように使われています。 REXML::Document.parse_stream(@rss, @listener) これはストリーム型と呼ばれるパース方法で、パース後に tree が作られるのではなく、逐次 L…

RSS Lib の Parser について

内部で実際に使っている Parser は以下のどれかとなります。 以下 lib/rss/parser.rb より抜粋。 AVAILABLE_PARSER_LIBRARIES = [ ["rss/xmlparser", :XMLParserParser], ["rss/xmlscanner", :XMLScanParser], ["rss/rexmlparser", :REXMLParser], ] require…

クラスメソッドとインスタンスメソッド

昨日の記事では、RSS Lib を使ってみるところまで実行しました。今日はその中で早速気になった部分から見ていきたいと思います。 まず気になったのが下記の部分です。 rss = RSS::Parser.parse(rss_cont, false) インスタンスを作成する前から(new する前か…

RDE インストール

RDE を落としてくる http://rubyforge.org/frs/?group_id=3959 インストール 特に何も気にせずに、そのままインストールしたものの、デバッグができない。調査したところデバッグ設定をしていないことに気づいたので、下記サイトを参考にしつつ日本語設定な…

RSS Lib の使い方

RSS Lib のソース解析をするに当たって動きをまずは見てみたいと思います。材料はこのサイトの RSS を使います。 RSS http://d.hatena.ne.jp/bazz/rss2 #!ruby require 'rss' require 'kconv' url = "http://d.hatena.ne.jp/bazz/rss2" rss_cont = open(url)…

Ruby 統合開発環境

vim-ruby Ruby ではプログラムするときのタブ幅が 半角スペース x2 なので、 何かしらないかと検索してみたところ vim-ruby というものがあることがわかった。 vim-ruby ではシンタックスハイライトや自動補完にも対応しているとのこと。 で、入れてみたんだ…

RSS Library

オープンソースで勉強したいと思い、 いい教材がないか探していたところ ruby に RSS Library があることを思い出した。 ruby の RSS Lib学習がてら、この Library の解読をしばらくしてみようかと思います。 ひとまず上記 URL から 0.2.3 を落としてきまし…