Sha256: a40509071109147c9b25a3641feb73e3b64ef7ca969d5813e025656fe728b1bc

Contents?: true

Size: 1.26 KB

Versions: 16

Compression:

Stored size: 1.26 KB

Contents

require 'jsduck/batch_parser'
require 'jsduck/batch_processor'
require 'jsduck/assets'
require 'jsduck/tag_registry'
require 'jsduck/export_writer'
require 'jsduck/web/writer'
require 'jsduck/logger'

module JsDuck

  # The main application logic of jsduck
  class App
    # Initializes app with JsDuck::OptionsRecord object
    def initialize(opts)
      @opts = opts
    end

    # Main App logic.
    # Returns application exit code.
    def run
      parse

      init_assets

      if @opts.export
        generate_export
      else
        generate_web_page
      end

      if @opts.warnings_exit_nonzero && Logger.warnings_logged?
        return 2
      else
        return 0
      end
    end

    private

    def parse
      @parsed_files = BatchParser.parse(@opts)
      @relations = BatchProcessor.process(@parsed_files, @opts)
    end

    def init_assets
      # Initialize guides, videos, examples, ...
      @assets = Assets.new(@relations, @opts)

      # HACK: Give access to assets from @aside tag
      TagRegistry.get_by_name(:aside).assets = @assets
    end

    def generate_export
      ExportWriter.new(@relations, @assets, @opts).write
    end

    def generate_web_page
      Web::Writer.new(@relations, @assets, @parsed_files, @opts).write
    end

  end

end

Version data entries

16 entries across 16 versions & 3 rubygems

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