Sha256: 995f2cc901ea10328468d2c7df856661554822be212d2b7dda4c0bdc6c5786dd

Contents?: true

Size: 1.3 KB

Versions: 16

Compression:

Stored size: 1.3 KB

Contents

require 'jsduck/util/stdout'
require 'jsduck/exporter/full'
require 'jsduck/exporter/examples'
require 'jsduck/format/batch'
require 'jsduck/class_writer'
require 'jsduck/guide_writer'
require 'jsduck/output_dir'
require 'fileutils'

module JsDuck

  # Performs the export in one of the export formats.
  class ExportWriter
    def initialize(relations, assets, opts)
      @relations = relations
      @assets = assets
      @opts = opts
    end

    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

    def export_classes
      cw = ClassWriter.new(get_exporter, @relations, @opts)
      cw.write(@opts.output, ".json")
    end

    def get_exporter
      exporters = {
        :full => Exporter::Full,
        :examples => Exporter::Examples,
      }
      exporters[@opts.export]
    end

    def export_examples_in_guides
      gw = GuideWriter.new(Exporter::Examples, @assets.guides, @opts)
      gw.write(@opts.output, ".json")
    end

    # -- util routines --

    def clean_output_dir
      OutputDir.clean(@opts)
    end

    def format_classes
      Format::Batch.format_all!(@relations, @assets, @opts)
    end

  end

end

Version data entries

16 entries across 16 versions & 3 rubygems

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