class CommonJS::Module
Attributes
exports[RW]
id[R]
Public Class Methods
new(id, env)
click to toggle source
# File lib/commonjs/module.rb, line 7 def initialize(id, env) @id = id @env = env @exports = env.new_object @segments = id.split('/') end
Public Instance Methods
require_function()
click to toggle source
# File lib/commonjs/module.rb, line 14 def require_function @require_function ||= lambda do |*args| this, module_id = *args module_id ||= this #backwards compatibility with TRR < 0.10 @env.require(expand(module_id)) end end
Private Instance Methods
expand(module_id)
click to toggle source
# File lib/commonjs/module.rb, line 24 def expand(module_id) return module_id unless module_id =~ /(\.|\..)/ module_id.split('/').inject(@segments[0..-2]) do |path, element| path.tap do if element == '.' #do nothing elsif element == '..' path.pop else path.push element end end end.join('/') end