RubyでAtom API

RubyAtom APIを使おうと思うのだけれども、どのライブラリがメジャーなのか探してみた。

atom-tools

http://rubyforge.org/projects/ibes/
http://raa.ruby-lang.org/project/atom-tools/

このくらいしかみつからない…。
みなさんなにを使っているのだろうか。

ちょっと見た感じだとatom-toolsの方がメンテされてるようで、atomppはなんかライブラリのAPIが微妙な気がする…。それにatom-toolsは http://code.necronomicorp.com/atom-tools/Tracもあるようですし、こちらを使ってみたいと思います。

Net::HTTP::Getがおかしい?

WWW::Mechanizeを使って以下のようにやると

require 'rubygems'
require 'mechanize'
require 'uri'
require 'logger'

agent = WWW::Mechanize.new { |a| a.log = Logger.new("/tmp/mech.log") }
agent.user_agent_alias = 'Windows IE 6'

str = 'あ'
url = 'http://example.com/?foo=' + URI.escape(str)
agent.get(url)

こうすると http://example.com/?foo=%E3%81%82 っていうリクエストが来るべきなんですが http://example.com/?foo=%E3 っていうリクエストがきます。なぜか「%81%82」がどこかに消えてしまいます。

/tmp/mech.logにログが残るのですが、それを見ても Net::HTTP::GET で

I, [2007-11-20T19:43:17.776953 #50422]  INFO -- : Net::HTTP::Get: /?foo=%E3

ってログしかのこってません。「%81%82」はどこいったの!?

ちなみに、urlのところを

url = 'http://example.com/?foo=' + URI.escape(str) + '&bar=1'

と後ろにもう1つクエリをつなげてやると普通にリクエストの投げてくれます。
どこのバグなんだろう…。

まだ深追いする能力がない。
ゆっくり深追いしてみる。