class JsDuck::BatchParser
Parses of all input files. Input files are read from options object (originating from command line).
Public Class Methods
parse(opts)
click to toggle source
# File lib/jsduck/batch_parser.rb, line 14 def self.parse(opts) cache = Cache.create(opts) results = Util::Parallel.map(opts.input_files) do |fname| Logger.log("Parsing", fname) begin source = Util::IO.read(fname) docs = nil unless docs = cache.read(fname, source) docs = Parser.new.parse(source, fname, opts) cache.write(fname, source, docs) end { :file => Source::File.new(source, docs, fname), :cache => cache.previous_entry, } rescue Logger.fatal_backtrace("Error while parsing #{fname}", $!) exit(1) end end cache.cleanup( results.map {|r| r[:cache] }.compact ) return results.map {|r| r[:file] } end