Commit 4598fcf8 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Move extra relations processing also to BatchParser.

Now the App class really can be called simple.
parent a521915a
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
require 'jsduck/util/parallel'
require 'jsduck/util/json'
require 'jsduck/batch_parser'
require 'jsduck/inherit_doc'
require 'jsduck/importer'
require 'jsduck/return_values'
require 'jsduck/lint'
require 'jsduck/assets'
require 'jsduck/meta_tag_registry'
require 'jsduck/export_writer'
require 'jsduck/web_writer'

@@ -24,13 +21,9 @@ module JsDuck
    end

    # Main App logic.
    #
    # Call this after input parameters set
    def run
      parse

      apply_extra_processing

      init_assets

      if @opts.export
@@ -47,13 +40,6 @@ module JsDuck
      @relations = @batch_parser.run
    end

    def apply_extra_processing
      InheritDoc.new(@relations).resolve_all
      Importer.import(@opts.imports, @relations, @opts.new_since)
      ReturnValues.auto_detect(@relations)
      Lint.new(@relations).run
    end

    def init_assets
      # Initialize guides, videos, examples, ...
      @assets = Assets.new(@relations, @opts)
@@ -62,7 +48,6 @@ module JsDuck
      MetaTagRegistry.instance.assets = @assets
    end


    def generate_export
      ExportWriter.new(@relations, @assets, @opts).write
    end
+15 −1
Original line number Diff line number Diff line
@@ -5,6 +5,10 @@ require 'jsduck/aggregator'
require 'jsduck/class'
require 'jsduck/relations'
require 'jsduck/logger'
require 'jsduck/inherit_doc'
require 'jsduck/importer'
require 'jsduck/return_values'
require 'jsduck/lint'

module JsDuck

@@ -23,7 +27,9 @@ module JsDuck
    def run
      @parsed_files = parallel_parse(@opts.input_files)
      result = aggregate(@parsed_files)
      return filter_classes(result)
      @relations = filter_classes(result)
      apply_extra_processing
      return @relations
    end

    private
@@ -87,6 +93,14 @@ module JsDuck
      Relations.new(classes, @opts.external_classes)
    end

    # Do all kinds of post-processing on relations.
    def apply_extra_processing
      InheritDoc.new(@relations).resolve_all
      Importer.import(@opts.imports, @relations, @opts.new_since)
      ReturnValues.auto_detect(@relations)
      Lint.new(@relations).run
    end

  end

end