Loading lib/jsduck/app.rb +12 −72 Original line number Diff line number Diff line require 'rubygems' require 'jsduck/util/parallel' require 'jsduck/util/json' require 'jsduck/source/writer' require 'jsduck/exporter/app' require 'jsduck/batch_parser' require 'jsduck/batch_formatter' require 'jsduck/export_writer' require 'jsduck/inherit_doc' require 'jsduck/assets' require 'jsduck/importer' require 'jsduck/return_values' require 'jsduck/lint' require 'jsduck/template_dir' require 'jsduck/class_writer' require 'jsduck/app_data' require 'jsduck/index_html' require 'jsduck/inline_examples' require 'fileutils' require 'jsduck/assets' require 'jsduck/export_writer' require 'jsduck/web_writer' module JsDuck Loading @@ -32,10 +23,11 @@ module JsDuck Util::Json.pretty = @opts.pretty_json end # Main App logic. # # Call this after input parameters set def run @batch_parser = BatchParser.new(@opts) @relations = @batch_parser.run parse apply_extra_processing Loading @@ -50,6 +42,11 @@ module JsDuck private def parse @batch_parser = BatchParser.new(@opts) @relations = @batch_parser.run end def apply_extra_processing InheritDoc.new(@relations).resolve_all Importer.import(@opts.imports, @relations, @opts.new_since) Loading @@ -66,69 +63,12 @@ module JsDuck end # -- export -- def generate_export ExportWriter.new(@relations, @assets, @opts).write end # -- web page -- def generate_web_page clean_output_dir write_template_files write_app_data # 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 def write_template_files TemplateDir.new(@opts).write IndexHtml.new(@assets, @opts).write end def write_app_data AppData.new(@relations, @assets, @opts).write(@opts.output_dir+"/data.js") end def write_source source_writer = Source::Writer.new(@batch_parser.parsed_files) source_writer.write(@opts.output_dir + "/source") end def write_inline_examples examples = InlineExamples.new examples.add_classes(@relations) examples.add_guides(@assets.guides) examples.write(@opts.output_dir+"/inline-examples.js") end def write_classes class_writer = ClassWriter.new(Exporter::App, @relations, @opts) class_writer.write(@opts.output_dir+"/output", ".js") end # -- util routines -- def clean_output_dir FileUtils.rm_rf(@opts.output_dir) end def format_classes BatchFormatter.format_all!(@relations, @assets, @opts) WebWriter.new(@relations, @assets, @batch_parser.parsed_files, @opts).write end end Loading lib/jsduck/web_writer.rb 0 → 100644 +79 −0 Original line number Diff line number Diff line require 'jsduck/exporter/app' require 'jsduck/batch_formatter' require 'jsduck/template_dir' require 'jsduck/index_html' require 'jsduck/app_data' require 'jsduck/class_writer' require 'jsduck/source/writer' require 'jsduck/inline_examples' require 'fileutils' module JsDuck # Performs the generation of docs web app. class WebWriter def initialize(relations, assets, parsed_files, opts) @relations = relations @assets = assets @parsed_files = parsed_files @opts = opts end def write clean_output_dir write_template_files write_app_data # 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 def write_template_files TemplateDir.new(@opts).write IndexHtml.new(@assets, @opts).write end def write_app_data AppData.new(@relations, @assets, @opts).write(@opts.output_dir+"/data.js") end def write_source source_writer = Source::Writer.new(@parsed_files) source_writer.write(@opts.output_dir + "/source") end def write_inline_examples examples = InlineExamples.new examples.add_classes(@relations) examples.add_guides(@assets.guides) examples.write(@opts.output_dir+"/inline-examples.js") end def write_classes class_writer = ClassWriter.new(Exporter::App, @relations, @opts) class_writer.write(@opts.output_dir+"/output", ".js") end # -- util routines -- def clean_output_dir FileUtils.rm_rf(@opts.output_dir) end def format_classes BatchFormatter.format_all!(@relations, @assets, @opts) end end end Loading
lib/jsduck/app.rb +12 −72 Original line number Diff line number Diff line require 'rubygems' require 'jsduck/util/parallel' require 'jsduck/util/json' require 'jsduck/source/writer' require 'jsduck/exporter/app' require 'jsduck/batch_parser' require 'jsduck/batch_formatter' require 'jsduck/export_writer' require 'jsduck/inherit_doc' require 'jsduck/assets' require 'jsduck/importer' require 'jsduck/return_values' require 'jsduck/lint' require 'jsduck/template_dir' require 'jsduck/class_writer' require 'jsduck/app_data' require 'jsduck/index_html' require 'jsduck/inline_examples' require 'fileutils' require 'jsduck/assets' require 'jsduck/export_writer' require 'jsduck/web_writer' module JsDuck Loading @@ -32,10 +23,11 @@ module JsDuck Util::Json.pretty = @opts.pretty_json end # Main App logic. # # Call this after input parameters set def run @batch_parser = BatchParser.new(@opts) @relations = @batch_parser.run parse apply_extra_processing Loading @@ -50,6 +42,11 @@ module JsDuck private def parse @batch_parser = BatchParser.new(@opts) @relations = @batch_parser.run end def apply_extra_processing InheritDoc.new(@relations).resolve_all Importer.import(@opts.imports, @relations, @opts.new_since) Loading @@ -66,69 +63,12 @@ module JsDuck end # -- export -- def generate_export ExportWriter.new(@relations, @assets, @opts).write end # -- web page -- def generate_web_page clean_output_dir write_template_files write_app_data # 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 def write_template_files TemplateDir.new(@opts).write IndexHtml.new(@assets, @opts).write end def write_app_data AppData.new(@relations, @assets, @opts).write(@opts.output_dir+"/data.js") end def write_source source_writer = Source::Writer.new(@batch_parser.parsed_files) source_writer.write(@opts.output_dir + "/source") end def write_inline_examples examples = InlineExamples.new examples.add_classes(@relations) examples.add_guides(@assets.guides) examples.write(@opts.output_dir+"/inline-examples.js") end def write_classes class_writer = ClassWriter.new(Exporter::App, @relations, @opts) class_writer.write(@opts.output_dir+"/output", ".js") end # -- util routines -- def clean_output_dir FileUtils.rm_rf(@opts.output_dir) end def format_classes BatchFormatter.format_all!(@relations, @assets, @opts) WebWriter.new(@relations, @assets, @batch_parser.parsed_files, @opts).write end end Loading
lib/jsduck/web_writer.rb 0 → 100644 +79 −0 Original line number Diff line number Diff line require 'jsduck/exporter/app' require 'jsduck/batch_formatter' require 'jsduck/template_dir' require 'jsduck/index_html' require 'jsduck/app_data' require 'jsduck/class_writer' require 'jsduck/source/writer' require 'jsduck/inline_examples' require 'fileutils' module JsDuck # Performs the generation of docs web app. class WebWriter def initialize(relations, assets, parsed_files, opts) @relations = relations @assets = assets @parsed_files = parsed_files @opts = opts end def write clean_output_dir write_template_files write_app_data # 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 def write_template_files TemplateDir.new(@opts).write IndexHtml.new(@assets, @opts).write end def write_app_data AppData.new(@relations, @assets, @opts).write(@opts.output_dir+"/data.js") end def write_source source_writer = Source::Writer.new(@parsed_files) source_writer.write(@opts.output_dir + "/source") end def write_inline_examples examples = InlineExamples.new examples.add_classes(@relations) examples.add_guides(@assets.guides) examples.write(@opts.output_dir+"/inline-examples.js") end def write_classes class_writer = ClassWriter.new(Exporter::App, @relations, @opts) class_writer.write(@opts.output_dir+"/output", ".js") end # -- util routines -- def clean_output_dir FileUtils.rm_rf(@opts.output_dir) end def format_classes BatchFormatter.format_all!(@relations, @assets, @opts) end end end