history

青木日記 RSS

<前の日 | この月 | 次の日>

2003-11-26

is_a? と ===

これまでクラスの判定が必要なときは Class#=== を使ってきたが、 Object#is_a? に乗り換えることにした。 dRuby とかで幸せになれそうな気がしたからだ。

だが、気がしただけで DRbObject#is_a?(c) は転送されないのであった。 あああ、DelegateClass も is_a? はフォワードしないのか……。 だめだ、クラスの判定はダメだ……。

もういい! どっちでも同じなら Class#=== を使うよ!

QuickiWiki

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入門』でまさにこれをやっていたはずだ。 変更後のソースコードはどこかに落ちてないものだろうか。

2chsucc

~ % 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

net/http の ToDo がたまりまくり。 1.9 でやろうかと思ってたら 1.9 がなかなか始まらなくて泣きを見た。 とりあえずここにメモっとく。

  • テストを書きなおす
  • 環境変数 HTTP_PROXY を見る (CGI除く)
  • ヘッダが複数ある場合に、それを配列で得られるメソッドを作る。
  • WebDAV 用のリクエストクラスを作る
  • HTTP#post/put のリクエストボディに大量のデータを渡せるようにする
  • 例外クラスを考えなおす
本日のツッコミ(全2件) [ツッコミを入れる]
ささだ (2003-11-26 18:27)

私は kind_of? を使うんですが,自分でもなぜかわかりません.

あおき (2003-11-26 20:36)

kind_of?……そういえばそんなものもあったなあ。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS