Module: ModuleInjector

Extended by:
ModuleInjector
Included in:
ModuleInjector
Defined in:
lib/dependence/module_injector.rb

Overview

Wraps code in a closure that provides an exports object to attach properties to the global namespace

Constant Summary collapse

@@module_code =
<<MODULE_FUNC
var global =  window

if (global.module == undefined) {
  global.module = function(name, body) {
    var exports = global[name]
    if (exports == undefined) {
    global[name] = exports = {}
    }
    body(exports)
  }
}
MODULE_FUNC

Instance Method Summary collapse

Instance Method Details

#modularize(name, content) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/dependence/module_injector.rb', line 19

def modularize(name, content)
  module_code = <<-JS
  #{@@module_code}

  module('#{name.capitalize}', function(exports) {
    #{content}
  })
  JS
end