Sha256: 9124ac5b1c06fc55119643bf99bfcf626e1f6c6673e83565ab81e3ee5998476f

Contents?: true

Size: 1.27 KB

Versions: 16

Compression:

Stored size: 1.27 KB

Contents

require 'jsduck/options/parser'
require 'jsduck/options/input_files'
require 'jsduck/logger'
require 'jsduck/util/json'
require 'jsduck/util/io'
require 'jsduck/util/parallel'
require 'jsduck/tag_registry'
require 'jsduck/js/ext_patterns'

module JsDuck
  module Options

    # A facade for all the command line options processing.
    class Processor
      # Takes a list of command line options, parses it to an
      # Options::Record object, validates the options, applies it to
      # various singleton classes and returns the Options::Record.
      def self.process(args)
        # HACK! First establish warnings defaults.
        Logger.configure_defaults

        opts = Options::Parser.new.parse(args)

        # Expand list of input files
        Options::InputFiles.new(opts).expand!

        # Validate the options.
        # Exit program when there's an error.
        if err = opts.validate!
          Array(err).each {|line| Logger.fatal(line) }
          exit(1)
        end

        # Configure various objects with these options
        Logger.configure(opts)
        Util::Parallel.configure(opts)
        TagRegistry.configure(opts)
        Js::ExtPatterns.configure(opts)
        Util::Json.configure(opts)
        Util::IO.configure(opts)

        opts
      end
    end

  end
end

Version data entries

16 entries across 16 versions & 3 rubygems

Version Path
solvas-jsduck-6.0.0.30539 lib/jsduck/options/processor.rb
solvas-jsduck-6.0.0.9571 lib/jsduck/options/processor.rb
solvas-jsduck-6.0.0.6154 lib/jsduck/options/processor.rb
solvas-jsduck-6.0.0.4021 lib/jsduck/options/processor.rb
solvas-jsduck-6.0.0.2554 lib/jsduck/options/processor.rb
solvas-jsduck-6.0.0.1891 lib/jsduck/options/processor.rb
solvas-jsduck-6.0.0.beta.1888 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.10 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.9 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.8 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.7 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.5 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.4 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.3 lib/jsduck/options/processor.rb
jsduck-troopjs-0.0.1 lib/jsduck/options/processor.rb
jsduck-6.0.0beta lib/jsduck/options/processor.rb