Ruby

gem2arch

実家に帰ってきているんだが,対応を誤って輪番停電により下宿のマシンが起きてこなくなってしまったためやることが無くなり,なんとなく gem を Arch のパッケージマネージャで管理しようとした. 同じような PKGBUILD を手動で書くのはタルいので cabal2ar…

EM::DefaultDeferrable の使い道

というわけで http://d.hatena.ne.jp/eagletmt/20110211/1297413439 は class HtmlDocument include EM::Deferrable ... で良いのであった… では EM::DefaultDeferrable は何のために提供されているのかというと DefaultDeferrable is an otherwise empty cl…

include / extend と super

勘違いしてた.include / extend したメソッド(?)を上書きしたときも,上書きされたメソッドを super で参照できるのか. extend と super を使ったどーでもいい例. def mod(i) Module.new do define_method :f do super() + [i] end end end module B def …

既存の EventMachine::Deferrable なクラスを薄くラップする

本格的に Deferrable なクラスを作りたいときは include EM::Deferrable するけど,そうではなく既存の Deferrable の上にちょっと乗せるだけみたいなときは EM::DefaultDeferrable を利用するといいらしい. em-http-request を利用して非同期にリクエスト…

ruby-oauth にブロックを渡せるようにする

Ruby には既に OAuth ライブラリ があるが,ブロックを渡せないのでちょっとずつ body を読み込みつつ何かする,というような処理ができない. 最終的には net/http を使っているので,適当にブロックを運ぶように書き換えて consumer = OAuth::Consumer.new…

mixi API を用いて日記を投稿する

mixi API の使い方は http://ido.nu/kuma/2008/07/30/digging-mixi-for-iphone-application-and-new-api-for-posting-a-diary-with-a-photo/ を参考にした。 また、mixi API に使われている WSSE という認証方法については はてなフォトライフAtomAPI を参考…

ちょっと修正

簡易マイミク更新チェッカー - EAGLE 雑記 なんか一部無駄なことをしていたので修正。 @@ -63,7 +63,7 @@ # post datetime dt = li.at('dt').text.toutf8.strip if date_re.match(dt) - dt = Time.local(*[$1, $2, $3, $4, $5]) + dt = Time.local($1, $2, $…

簡易マイミク更新チェッカー

手動で更新チェックは面倒なので。 nokogiri でごりごり html を解析している。 ruby1.8 でも ruby1.9 でも nokogiri さえ入っていれば動くはず。 使い方としてはまぁ見ての通りで、最初に yamlpath のところに email: foo@example.com password: xxxxxxxx …

Python より Ruby

うへぇ、風邪ひいた。。。 人と話していると喉の痛みが地味にこたえる。ネットのテキスト文化万歳! ここ一週間くらい Ruby と Python を学んでるんだけど、小規模のスクリプトを書くにあたって俺にあっているのはどうやら Ruby のようだ。 俺の感じたそれぞ…