class JsDuck::ExportWriter

Performs the export in one of the export formats.

Public Class Methods

new(relations, assets, opts) click to toggle source
# File lib/jsduck/export_writer.rb, line 14
def initialize(relations, assets, opts)
  @relations = relations
  @assets = assets
  @opts = opts
end

Public Instance Methods

write() click to toggle source
# File lib/jsduck/export_writer.rb, line 20
def write
  format_classes

  clean_output_dir unless @opts.output == :stdout

  export_classes
  export_examples_in_guides if @opts.export == :examples

  Util::Stdout.flush if @opts.output == :stdout
end

Private Instance Methods

clean_output_dir() click to toggle source

– util routines –

# File lib/jsduck/export_writer.rb, line 53
def clean_output_dir
  OutputDir.clean(@opts)
end
export_classes() click to toggle source
# File lib/jsduck/export_writer.rb, line 33
def export_classes
  cw = ClassWriter.new(get_exporter, @relations, @opts)
  cw.write(@opts.output, ".json")
end
export_examples_in_guides() click to toggle source
# File lib/jsduck/export_writer.rb, line 46
def export_examples_in_guides
  gw = GuideWriter.new(Exporter::Examples, @assets.guides, @opts)
  gw.write(@opts.output, ".json")
end
format_classes() click to toggle source
# File lib/jsduck/export_writer.rb, line 57
def format_classes
  Format::Batch.format_all!(@relations, @assets, @opts)
end
get_exporter() click to toggle source
# File lib/jsduck/export_writer.rb, line 38
def get_exporter
  exporters = {
    :full => Exporter::Full,
    :examples => Exporter::Examples,
  }
  exporters[@opts.export]
end