RubyのWWW::Mechanizeを使っている俺スクリプトの以下の部分がgem updateで動かなくなった.
page = agent.get("http://some-host.example.com/some/path") form = page.forms.name("SomeLoginForm").first
CHANGELOGを確認すると,なんとWWW::Mechanize::Listがなくなったとある. そもそも0.8.5のときに警告されていたようで見落としていた.
=== 0.9.0 * Deprecations * WWW::Mechanize::List is gone! ...省略 === 0.8.5 * Deprecations * WWW::Mechanize::List will be deprecated in 0.9.0, and warnings have been added to help you upgrade.
で,WWW::Mechanize::Page#formsが返す値がなにになったかというと,Arrayのインスタンス(各要素がWWW::Mechanize::Form)になっていた.
そんなわけで上記のコードは以下のように変更して動作させた.
page = agent.get("http://some-host.example.com/some/path") page.forms.find { |f| "SomeLoginForm" == f.name }
最初RDocのフォーマッタを見た. HTMLは普通としてCompiledHTMLやri,Texinfo,XMLへの出力ができるらしい. ただ,フォーマッタを書くのはRDtoolのほうが書きやすいように考えた. 慣れているということもあるので若干バイアスがかかっているのかもしれないけど.
自分が使う範囲だけどもRDtoolがRuby 1.9.1でも動作することを確認した.
あとは,rubyzipをRuby 1.9.1対応させた. ftools.rbがなくなったことにあわせて代替に通常のFileクラスのメソッド呼び出しにしたり,fileutils.rbを使ったりして対応させた.
RDからOpenDocument Text形式のファイルを生成するコンバータをあたためていましたが出すことにしました.
以下のコマンドでa.rdとa.ott(OpenDocument Text Template形式)ファイルを読み込み,a.odtを出力します.
% rd2odt a.rd
対応している全機能を使ったRDがdoc/sample.rd.jaにあります. また,変換後のファイルを含めて以下に置きました.
rubyzipはgemからインストールできます.
# gem install rubyzip
setup.rbでインストールします.
# sudo ruby setup.rb
0.0.0ではRDで表現可能なマークアップの内,以下ができています.
逆に以下はできていません.