Sha256: 58efed0f0c9734fa61fbd32ec209d63569b903c3452215ad6d675d99a3808d5e
Contents?: true
Size: 1.06 KB
Versions: 21
Compression:
Stored size: 1.06 KB
Contents
require 'jsduck/util/parallel' require 'jsduck/util/io' require 'jsduck/parser' require 'jsduck/source/file' require 'jsduck/logger' require 'jsduck/cache' module JsDuck # Parses of all input files. Input files are read from options # object (originating from command line). class BatchParser 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 end end
Version data entries
21 entries across 21 versions & 3 rubygems