class JsDuck::Web::Writer
Performs the generation of docs web app.
Public Class Methods
new(relations, assets, parsed_files, opts)
click to toggle source
# File lib/jsduck/web/writer.rb, line 20 def initialize(relations, assets, parsed_files, opts) @relations = relations @assets = assets @parsed_files = parsed_files @opts = opts end
Public Instance Methods
clean_output_dir()
click to toggle source
# File lib/jsduck/web/writer.rb, line 49 def clean_output_dir OutputDir.clean(@opts) end
format_classes()
click to toggle source
# File lib/jsduck/web/writer.rb, line 81 def format_classes Format::Batch.format_all!(@relations, @assets, @opts) end
write()
click to toggle source
# File lib/jsduck/web/writer.rb, line 27 def write clean_output_dir write_template_files write_icons write_html_files # class-formatting is done in parallel which breaks the links # between source files and classes. Therefore it MUST to be done # after writing sources which needs the links to work. write_source if @opts.source format_classes write_inline_examples if @opts.tests write_classes @assets.write end
write_classes()
click to toggle source
# File lib/jsduck/web/writer.rb, line 92 def write_classes class_writer = ClassWriter.new(Exporter::App, @relations, @opts) class_writer.write(@opts.output+"/output", ".js") end
write_html_files()
click to toggle source
Generate data.js and styles.css. Then generate HTML files, linking to the data.js and styles.css from them.
# File lib/jsduck/web/writer.rb, line 66 def write_html_files # Remember the MD5-fingerprinted filenames paths = { :data => Web::Data.new(@relations, @assets, @opts).write(@opts.output+"/data.js"), :css => Web::Css.new(@opts).write(@opts.output+"/styles.css"), } Web::IndexHtml.new(@assets, @opts, paths).write end
write_icons()
click to toggle source
Copy over class and member icons
# File lib/jsduck/web/writer.rb, line 59 def write_icons Web::ClassIcons.write(@opts.output+"/class-icons") Web::MemberIcons.write(@opts.output+"/member-icons") end
write_inline_examples()
click to toggle source
# File lib/jsduck/web/writer.rb, line 85 def write_inline_examples examples = InlineExamples.new examples.add_classes(@relations) examples.add_guides(@assets.guides) examples.write(@opts.output+"/inline-examples.js") end
write_source()
click to toggle source
# File lib/jsduck/web/writer.rb, line 76 def write_source source_writer = Web::Source.new(@parsed_files) source_writer.write(@opts.output + "/source") end
write_template_files()
click to toggle source
Copy over template files
# File lib/jsduck/web/writer.rb, line 54 def write_template_files Web::Template.new(@opts).write end