Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I include a module in a namespaced class?

Tags:

ruby

I am having trouble including a module in a namespaced class. The example below throws the error uninitialized constant Bar::Foo::Baz (NameError). What basic piece of Ruby knowledge am I missing here?

module Foo
  module Baz
    def hello
      puts 'hello'
    end
  end
end

module Bar
  class Foo
    include Foo::Baz
  end
end

foo = Bar::Foo.new
like image 677
Hakan Ensari Avatar asked Mar 26 '10 16:03

Hakan Ensari


1 Answers

Use :: to force the lookup to the top level only:

module Bar
  class Foo
    include ::Foo::Baz
  end
end
like image 197
molf Avatar answered Nov 08 '22 03:11

molf