Emulating Node.js Modules in Ruby(andrew.ghost.org)
andrew.ghost.org
Emulating Node.js Modules in Ruby
http://andrew.ghost.org/emulating-node-js-modules-in-ruby/
5 comments
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
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.
#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
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.
The code for the importer is here: https://github.com/andrew/module_import
It's early days but could be quite an interesting way to handle dependencies in ruby.
It's early days but could be quite an interesting way to handle dependencies in ruby.
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/soveran/cargo