From: take_tk Date: 2006-08-16T15:57:28+09:00 Subject: [ruby-list:42705] Re: StringScanner と case の相性 & メソッド上書きの方法 たけ(tk)です * StringScanner#rest? がオンラインリファレンスに書いてないようです。     >ドキュメント担当の方 (http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=strscan;em=strscan) ---- [ruby-list:42699] Re: StringScanner と case の相性 & メソッド上書きの方法 にて "Hiroyuki Iwatsuki" さん曰く: > 岩月と申します。 > > StringScannerオブジェクトをcase文で使うなら、 > case文の式を省略してみてはいかがでしょうか。 http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%C0%A9%B8%E6%B9%BD%C2%A4#case case の「式」を省略した場合、when の条件式が偽でない最初の 式を評価します。 知らなかった・・。うまくいきますね。 require 'strscan' s = StringScanner.new('This is an example string.') while s.rest? case when s.scan(/\w+/) ; p [:word, s.matched] when s.scan(/\s+/) ; p [:space, s.matched] else ; p [:mismatched, s.rest] ; break end end > あと、(4)のモジュールでメソッドを上書きする方法は > 今でも使えますよ。superも使えます。 ふむ、これも・・。includeとextendとの違いが気づかなかった。 extendではsuperが使えるが、includeではsuperが使えない、というのが残念。 Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武