class JsDuck::App

The main application logic of jsduck

Public Class Methods

new(opts) click to toggle source

Initializes app with JsDuck::OptionsRecord object

# File lib/jsduck/app.rb, line 14
def initialize(opts)
  @opts = opts
end

Public Instance Methods

run() click to toggle source

Main App logic. Returns application exit code.

# File lib/jsduck/app.rb, line 20
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 Instance Methods

generate_export() click to toggle source
# File lib/jsduck/app.rb, line 53
def generate_export
  ExportWriter.new(@relations, @assets, @opts).write
end
generate_web_page() click to toggle source
# File lib/jsduck/app.rb, line 57
def generate_web_page
  Web::Writer.new(@relations, @assets, @parsed_files, @opts).write
end
init_assets() click to toggle source
# File lib/jsduck/app.rb, line 45
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
parse() click to toggle source
# File lib/jsduck/app.rb, line 40
def parse
  @parsed_files = BatchParser.parse(@opts)
  @relations = BatchProcessor.process(@parsed_files, @opts)
end