I sometimes use nested classes to avoid namespace clutter. The only
downsides I found are related to inheritance, in particular when you
split out classes into different files.
[a.rb]
require 'a/b'
class A < SuperClass
end
[a/b.rb]
class A < SuperClass
class B
end
end
In both files you have to have the correct superclass (which can be
hard during refactoring). There are different ways to construct this,
however:
[a.rb]
class A < SuperClass
require 'a/b'
end
[a/b.rb]
class A::B
end
The downside of this is that 'a/b.rb' can't be required on it's own.