
Emulating Node.js Modules in Ruby - andrewnez
http://andrew.ghost.org/emulating-node-js-modules-in-ruby/
======
__cyx
My good friend and colleague Michel Martens has tried to propose this to the
rubygem guys but unfortunately it was rejected because it's not the `ruby
way`.

[https://github.com/soveran/cargo](https://github.com/soveran/cargo)

~~~
andrewnez
Ah that's really interesting, I've added it to the bottom of the post as a
note.

------
Argorak
I am not sure whether this is a good approach, given how much module hierarchy
matters in ruby. I came up with similar hacky things as the OP. I played
around with ideas a few years ago and found an interesting gem:

#load actually allows you to load against an anonymous module to protect the
global namespace. It would be interesting to provide a non-anonymous module
there.

[http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-
load](http://www.ruby-doc.org/core-2.0.0/Kernel.html#method-i-load)

In the end, I found that deviating from such a fundamental part of the
language to be less worthwhile than expected. The cognitive load of doing the
"non-standard" thing is just to high.

------
andrewnez
The code for the importer is here:
[https://github.com/andrew/module_import](https://github.com/andrew/module_import)

It's early days but could be quite an interesting way to handle dependencies
in ruby.

------
parshap
The module system is indeed one of the best things about Node. I'm not sure it
fits well into all languages and their ecosystems, but it's certainly
interesting to try. For another example, here is an implementation for C:
[https://github.com/substack/dotc](https://github.com/substack/dotc).

