Reputation: 879
I have seen a lot usage of double colons in Rails before class names.
For example:
require ::File.expand_path('../config/environment', __FILE__)
I know what Module::Class::Constant
means, but ::Class
?
Upvotes: 61
Views: 13115
Reputation: 370112
It means that you're referring to the constant File
from the toplevel namespace. This makes sense in situations like this:
class MyClass #1
end
module MyNameSpace
class MyClass #2
end
def foo # Creates an instance of MyClass #1
::MyClass.new # If I left out the ::, it would refer to
# MyNameSpace::MyClass instead.
end
end
Upvotes: 109