From: Mark Somerville Date: 2012-01-20T19:58:10+09:00 Subject: [ruby-core:42189] [ruby-trunk - Bug #5914][Open] Calling extend with an anonymous module requires use of parentheses Issue #5914 has been reported by Mark Somerville. ---------------------------------------- Bug #5914: Calling extend with an anonymous module requires use of parentheses https://bugs.ruby-lang.org/issues/5914 Author: Mark Somerville Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: 2.0.0dev =begin Given Ruby 2.0.0dev, 1.9.3 or 1.8.7 and this code: class Dude def initialize extend Module.new do def hello puts "Word!" end end end end Dude.new.hello No warning is given, but it does not behave how I expect and throws a NoMethodError. However, if parentheses are used on the call to extend, things behave as expected: class Dude def initialize extend(Module.new do def hello puts "Word!" end end) end end Dude.new.hello => Word! I don't understand what is happening in the first case (without parentheses). Is this a bug or a misunderstanding on my part? =end -- http://bugs.ruby-lang.org/