From: Hiroyuki Iwatsuki Date: 2006-08-16T01:41:19+09:00 Subject: [ruby-list:42699] Re: StringScanner と case の相性 & メソッド上書きの方法 岩月と申します。 StringScannerオブジェクトをcase文で使うなら、 case文の式を省略してみてはいかがでしょうか。 require 'strscan' s = StringScanner.new("foobarbaz") while s.rest? case when s.scan(/foo/) puts("foo") when s.scan(/bar/) puts("bar") when s.scan(/baz/) puts("baz") end end あと、(4)のモジュールでメソッドを上書きする方法は 今でも使えますよ。superも使えます。 module M def foo puts("M#foo") super end end class C def foo puts("C#foo") end end c = C.new c.extend(M) c.foo 実行すると次のように表示されます。 M#foo C#foo -- IWATSUKI Hiroyuki