Bug #12109
Updated by shyouhei (Shyouhei Urabe) over 8 years ago
I noticed this bug using Rails, which lazy-loads classes (via ActiveSupport.) Here's a minimal test case: ~~~ruby ~~~ #!/usr/bin/env ruby begin # simulate loading a class from file at runtime eval %q{ class Foo def self.bar fail 'bar' end bar def self.baz puts 'baz' end end } rescue => e puts "rescued: #{e}" end # => rescued: bar Foo.baz # => undefined method `baz' for Foo:Class (NoMethodError) ~~~ EXPECTED Either: * No exception - finish adding the method to the class, or * 'undefine' the class, at least making it obvious that the class didn't load completely (or in the case of rails/activesupport, allow it to be reloaded on-demand later)