これまでクラスの判定が必要なときは Class#=== を使ってきたが、 Object#is_a? に乗り換えることにした。 dRuby とかで幸せになれそうな気がしたからだ。
だが、気がしただけで DRbObject#is_a?(c) は転送されないのであった。 あああ、DelegateClass も is_a? はフォワードしないのか……。 だめだ、クラスの判定はダメだ……。
もういい! どっちでも同じなら Class#=== を使うよ!
WikiWay を読んでいたら QuickiWiki のコードを実際に見てみたくなった。 以下のところからたどればよさそうだ。
結城さんとこの Wiki の QuickiWiki ページ: http://www.hyuki.com/yukiwiki/wiki.cgi?QuickiWiki
で、見た。
なんで脈絡もなくインデントが 1 になったり 8 にしてみたり 4 になったりするんですか? 閉じブレースの位置くらい統一しろと。
いろいろな意味で凄いコードだ。 HTML 断片をヒアドキュメントでソースコードに 埋め込みまくりなのは、ある意味潔い。 いわゆる日本のわたしとしてはちょっとためらうやりかただが、 これはこれでよいものだ。
うーんと、
open(T, "template.html") or die "template.html: $!"; undef $/; $_ = <T>; close(T); s/\$(\w+)/defined($par{$1}) ? $par{$1} : ''/geo; print; $/ = "\n";
こういうことか。
params = {'title' => 'Search Result', ....} print File.read('template.html').gsub(/\$(\w+)/) { params[$1] || '' }
この調子で全部書き直したらめっちゃ短くなりそうだな。
そういえば『PerlユーザーのためのRuby入門』でまさにこれをやっていたはずだ。 変更後のソースコードはどこかに落ちてないものだろうか。
~ % cat succ2ch.rb require 'jcode' class String def succ2ch prefix = ['','','','','','','じゃ','それじゃ','じゃあ'] prefix[rand(prefix.length)] + gsub(/[\d0-9]+/) {|s| s.succ } end end puts '2!'.succ2ch puts '>>102 典型的なバカ'.succ2ch puts '5取ったら脱ぎます'.succ2ch ~ % ruby -Ke succ2ch.rb じゃ3! >>103 典型的なバカ それじゃ6取ったら脱ぎます
net/http の ToDo がたまりまくり。 1.9 でやろうかと思ってたら 1.9 がなかなか始まらなくて泣きを見た。 とりあえずここにメモっとく。
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
私は kind_of? を使うんですが,自分でもなぜかわかりません.
kind_of?……そういえばそんなものもあったなあ。