It was a bug of 1.9.2 and fixed in 1.9.3.

  http://redmine.ruby-lang.org/issues/4536 (in Japanese)

Constants should be lookuped statically.
The behaviour is the same as 1.8.

2011/11/22 11:37 "Gary Bernhardt" <gary.bernhardt / gmail.com>:
>
>
> Issue #5657 has been reported by Gary Bernhardt.
>
> ----------------------------------------
> Bug #5657: Constants in included modules aren't visible when defining
classes with Class.new
> http://redmine.ruby-lang.org/issues/5657
>
> Author: Gary Bernhardt
> Status: Open
> Priority: Normal
> Assignee:
> Category:
> Target version:
> ruby -v: ruby 1.9.3p0 (2011-11-08) [x86_64-darwin10.8.0]
>
>
> I define two classes that include a module. One is defined with `class`,
one is defined with `Class.new`. I expect both to be able to reference
constants in the included module. The `class` one can, but the `Class.new`
one can't. Reproducing code:
>
> module X
>  module Y
>  end
> end
>
> class Class1
>  include X
>  def self.f
>    # Works: Y is printed
>    p Y
>  end
> end
>
> Class2 = Class.new do
>  include X
>  def self.f
>    # Fails: "uninitialized constant Y"
>    p Y
>  end
> end
>
> Class1.f
> Class2.f
>
> It works with 1.9.2:
>
> $ ruby -v
> ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]
> $ ruby bug.rb
> X::Y
> X::Y
>
> but not 1.9.3-p0:
>
> $ ruby -v
> ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
> $ ruby bug.rb
> X::Y
> bug.rb:18:in `f': uninitialized constant Y (NameError)
>        from bug.rb:23:in `<main>'
>
> or 1.9.3-head:
>
> $ ruby -v
> ruby 1.9.3p0 (2011-11-08) [x86_64-darwin10.8.0]
> $ ruby bug.rb
> X::Y
> bug.rb:18:in `f': uninitialized constant Y (NameError)
>        from bug.rb:23:in `<main>'
>
> I discovered this because it RSpec specs when going to 1.9.3:
https://github.com/rspec/rspec-core/issues/506
>
>
> --
> http://redmine.ruby-lang.org
>