Issue #7475 has been updated by ko1 (Koichi Sasada).

Assignee set to matz (Yukihiro Matsumoto)
Target version changed from 1.9.3 to next minor

Matz, could you check it?

----------------------------------------
Bug #7475: Unexpected behavior of Module#append_features on singleton class
https://bugs.ruby-lang.org/issues/7475#change-36458

Author: ernie (Ernie Miller)
Status: Open
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: 
Target version: next minor
ruby -v: ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] 


A more involved explanation is available at http://erniemiller.org/2012/11/29/ruby-tidbit-include-vs-extend-with-module-class-variables/

In short, the handling of class variables (and constants) when a module is extended vs included is not as expected.

Example:

    module Foo
      @@foo = 'foo'
    end
 
    class Bar
      include Foo
    end

    class Baz
      extend Foo
    end

    Bar.class_variable_get :@@foo # => "foo"
    Baz.singleton_class.class_variable_get :@@foo # => NameError: uninitialized class variable @@foo in Class

We would expect constant and class variable lookup on the singleton class to work, but it doesn't. Both Rubinius and JRuby seem to behave as expected in this case.

Thanks!


-- 
http://bugs.ruby-lang.org/