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

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/batch_parser.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/batch_parser.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/batch_parser.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/batch_parser.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/batch_parser.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/batch_parser.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.10 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.9 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.8 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.7 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.5 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.4 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.3 lib/jsduck/batch_parser.rb
jsduck-troopjs-0.0.1 lib/jsduck/batch_parser.rb
jsduck-6.0.0beta lib/jsduck/batch_parser.rb
jsduck-5.3.4 lib/jsduck/batch_parser.rb
jsduck-5.3.3 lib/jsduck/batch_parser.rb
jsduck-5.3.2 lib/jsduck/batch_parser.rb
jsduck-5.3.1 lib/jsduck/batch_parser.rb