From: "NAKAMURA, Hiroshi" Date: 2002-11-15T00:37:00+09:00 Subject: [ruby-dev:18788] observer.rb, ostruct.rb: NameError -> NoMethodError なひです。 1.7のobserver.rbとostruct.rbにNameErrorがありますが、 NoMethodErrorのほうがよさそうかな、と思いました。 delegate.rbのNameErrorはNameErrorのままかな。。。 ostruct.rbのほうは、キーがsymbolに変わったときの 修正漏れがあるようです(パッチの一番最後のブロック)。 これは1.6にも当てたほうがいいかな。どうしましょう。 Index: observer.rb =================================================================== RCS file: /src/ruby/lib/observer.rb,v retrieving revision 1.5 diff -u -2 -p -r1.5 observer.rb --- observer.rb 2 Feb 2001 11:38:17 -0000 1.5 +++ observer.rb 14 Nov 2002 15:29:15 -0000 @@ -7,5 +7,5 @@ module Observable @observer_peers = [] unless defined? @observer_peers unless observer.respond_to? :update - raise NameError, "observer needs to respond to `update'" + raise NoMethodError, "observer needs to respond to `update'" end @observer_peers.push observer Index: ostruct.rb =================================================================== RCS file: /src/ruby/lib/ostruct.rb,v retrieving revision 1.3 diff -u -2 -p -r1.3 ostruct.rb --- ostruct.rb 3 Nov 2002 11:04:31 -0000 1.3 +++ ostruct.rb 14 Nov 2002 15:29:15 -0000 @@ -31,5 +31,5 @@ class OpenStruct @table[mid] else - raise NameError, "undefined method `#{mname}'", caller(1) + raise NoMethodError, "undefined method `#{mname}' for #{self.to_s}", caller(1) end end @@ -43,5 +43,5 @@ class OpenStruct for k,v in @table str += " " - str += k + str += k.to_s str += "=" str += v.inspect