Issue #9064 has been updated by minad (Daniel Mendler).


I think it would be more interesting if you would also support package imports then (similar to Python) which would prevent namespace clashes. This could be introduced in a backward compatible way by putting unpackaged packages in some kind of root package. However I don't know if it is worth to add such a feature so late to a language and it is also not so nice to add another level of abstraction (package, module, class, ...).

Another suggestion - Ruby is powerful enough to implement some kind of package system directly in Ruby (See for example https://gist.github.com/minad/7238978)


----------------------------------------
Feature #9064: Add support for packages, like in Java
https://bugs.ruby-lang.org/issues/9064#change-42661

Author: rosenfeld (Rodrigo Rosenfeld Rosas)
Status: Open
Priority: Normal
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: 


In Java, it's easy to define a package for a certain class:

package com.company.MyClass

We don't use that convention in Ruby but we have another way of packaging classes:

module MyLibrary
  module InnerNamespace
    class MyClass
    end
  end
end

I'd prefer to be able to use something like this instead meaning exactly the same thing:

package MyLibrary::InnerNamespace # or MyLibrary.InnerNamespace, I don't really care
class MyClass
end

Could you please consider this idea?


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