From: Nobuyoshi Nakada Date: 2012-01-08T14:15:15+09:00 Subject: [ruby-core:41977] [ruby-trunk - Bug #5857] no block given with redefined method although block given Issue #5857 has been updated by Nobuyoshi Nakada. Priority changed from High to Low ---------------------------------------- Bug #5857: no block given with redefined method although block given https://bugs.ruby-lang.org/issues/5857 Author: patrick hanevold Status: Rejected Priority: Low Assignee: Category: core Target version: ruby -v: 1.9 or later Please help me understand if this really is a bug or not. It seems so very like it. The second yielder gives a no block given exception on the yield, and I cant see how thats right, and it is called with a code block. class Foo def yielder yield "hello" end end class Mod def initialize @@foo = Foo.new end def self.foo @@foo end end worker = Mod.new Mod.foo.yielder do |hello| puts hello end Mod.foo.class.send(:define_method,:yielder) do yield "new hello" end Mod.foo.yielder do |hello| puts hello end Gives: hello test.rb:27:in `block in
': no block given (yield) (LocalJumpError) from test.rb:30:in `
' -- http://redmine.ruby-lang.org