Module: Modulr

Defined in:
lib/modulr.rb,
lib/modulr/error.rb,
lib/modulr/parser.rb,
lib/modulr/version.rb,
lib/modulr/minifier.rb,
lib/modulr/collector.rb,
lib/modulr/js_module.rb,
lib/modulr/sync_collector.rb,
lib/modulr/dependency_graph.rb,
lib/modulr/global_export_collector.rb

Defined Under Namespace

Modules: VERSION Classes: Collector, DependencyGraph, DynamicModuleIdentifierError, GlobalExportCollector, JSModule, JavaScriptSyntaxError, LoadModuleError, Minifier, MinifierError, ModuleIdentifierError, ModulrError, Parser, ParserError, SyncCollector

Constant Summary collapse

LIB_DIR =
File.dirname(__FILE__)
PARSER_DIR =
File.join(LIB_DIR, '..', 'vendor', 'rkelly', 'lib')
PATH_TO_MODULR_JS =
File.join(LIB_DIR, '..', 'assets', 'modulr.js')
PATH_TO_MODULR_SYNC_JS =
File.join(LIB_DIR, '..', 'assets', 'modulr.sync.js')

Class Method Summary collapse

Class Method Details

.graph(file, options = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
# File 'lib/modulr.rb', line 36

def self.graph(file, options = {})
  dir = File.dirname(file)
  mod_name = File.basename(file, '.js')
  mod = JSModule.new(mod_name, dir, file)
  output = options.delete(:output)
  output = "#{dir}/#{mod_name}.png" unless output
  uri = DependencyGraph.new(mod).to_yuml(options)
  File.open(output, 'w').write(open(uri).read)
end

.ize(*args) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/modulr.rb', line 20

def self.ize(*args)
  options = args.last.is_a?(Hash) ? args.pop : {}
  input_files = args
  
  if options[:global]
    collector = GlobalExportCollector.new(options)
  elsif options[:sync]
    collector = SyncCollector.new(options)
  else
    collector = Collector.new(options)
  end
  
  collector.parse_files(*input_files)
  minify(collector.to_js, options[:minify])
end