読者です 読者をやめる 読者になる 読者になる

Rubyはじめました

ruby

Rubyをはじめることにした。Ruby自体は何年か前、大学の実験で、簡単な自然言語処理N-gramやTF/IDF)を組んだことがあるけど、ほとんど忘れてしまった。
普段はJavaがメインだけど、テキスト処理などのためにスクリプト言語も抑えておきたいと思ったため。
Perlという選択肢もあって、Rubyとどちらにするか悩んでいる。Perlは歴史の長さからライブラリやら資料やらが豊富なのが魅力だが、どうにも好きになれない。「elsif」が好きになれない。というわけでRubyから始めることにする。

Hpricotのこと

Rubyという言語のことはまだよく分かっていないけども、練習としてhttpでwebページをダウンロードしてごにょごにょしようと思う。
参考にしたのはこのサイト。
Route 477 - RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize , HikiReload

環境はWindowsXPとcygwincygwinにはすでにRubyが入れてあったのでそのまま使う。
上記のサイトで紹介されているHpricotというライブラリを使ってみようと思う。そのためにはまずRubyGemsというのがいるらしい。Rubyのパッケージ管理ツール。こういうの、cygwinでも使えるのだろうか?
使えた。RubyGemsをzipで落としてきて、

ruby setup.rb

cygwinでもインストールできた。動いてるからできたんだろう。
次にHpricotを落とす。しかし

gem install hpricot

でNot Foundになる。なぜだ。

gem install Hpricot

これで通った。大文字じゃないとだめなのね。
しかし問題が発生。hpricotのrequireでエラーになる。

>> require 'Hpricot'
LoadError: No such file or directory - /usr/lib/ruby/gems/1.8/gems/hpricot-0.6-mswin32/lib/i686-linux/hpricot_scan.so
        from /usr/lib/ruby/gems/1.8/gems/hpricot-0.6-mswin32/lib/i686-linux/hpricot_scan.so
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
        from /usr/lib/ruby/gems/1.8/gems/hpricot-0.6-mswin32/lib/Hpricot.rb:20
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `gem_original_require'
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:32:in `require'
        from (irb):3

hpricot_scan.soがありません。うそーん。あるし。ちゃんとそこにおいてあるよ! 結局原因分からず。どうせリンク抽出とかしかしないので正規表現でいいじゃんと思うことにした。

require 'rubygems'のこと

RubyGemsでgemってきたライブラリをrequireするときは、まず

require 'rubygems'

してからじゃないと使えないようだ。えーめんどくせー

irbとwirble

rubyの対話型インタプリタirbで起動できるようだ。
【ハウツー】Rubyの小技 - irbに補完・シンタックスハイライト機能をつけてみる | エンタープライズ | マイナビニュース
で書いてあるように、wirbleというライブラリをgemれば、irbでコード補完とか強調表示とかができるとのこと。やってみた。→できた。