require_module¶ ↑
Evaluates file content inside Module.new, with cache
API¶ ↑
require_module(fullpath)¶ ↑
Evaluates file content inside Module.new and returns new module
require_module('/home/user/rubyapp/lib', cache: false) # returns #<Module:0000012312> require_module('/home/user/rubyapp/lib') # returns :HomeUserRubyappLib
require_module_relative(relative_path)¶ ↑
Similar to “require_module”, but path is relative to file, where function is executed
Check lib/require_module.rb
for more
Example¶ ↑
If you don't want you modules to intersect, they should have unique name. I was tired of coming up with new names, so created this gem.
Instead of
# lib.rb module GloballyUniqueName module_function def somefn 'Ima helper' end end
# consumer.rb require_relative './lib' module Consumer include GloballyUniqueName def foo somefn == 'Ima helper' end end
You can write this
# lib.rb module_function def somefn 'Ima helper' end
# consumer.rb module Consumer include require_module_relative('./lib') def foo somefn == 'Ima helper' end end