Loading lib/jsduck/app.rb +10 −5 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ module JsDuck clear_dir(@output_dir) if @export FileUtils.mkdir(@output_dir) init_output_dirs(@output_dir) else copy_template(@template_dir, @output_dir) end Loading @@ -47,7 +48,7 @@ module JsDuck classes = @timer.time(:aggregating) { filter_classes(result) } if @export == :json @timer.time(:generating) { write_json(@output_dir, classes) } @timer.time(:generating) { write_json(@output_dir+"/output", classes) } else @timer.time(:generating) { write_tree(@output_dir+"/output/tree.js", classes) } @timer.time(:generating) { write_members(@output_dir+"/output/members.js", classes) } Loading @@ -59,13 +60,13 @@ module JsDuck # Parses the files in parallel using as many processes as available CPU-s def parallel_parse(filenames) src = SourceFormatter.new(@output_dir + "/source") src = SourceFormatter.new(@output_dir + "/source", @export ? :format_pre : :format_page) Parallel.map(filenames) do |fname| puts "Parsing #{fname} ..." if @verbose code = IO.read(fname) { :filename => fname, :html_filename => @export ? "" : File.basename(src.write(code, fname)), :html_filename => File.basename(src.write(code, fname)), :data => Parser.new(code).parse, } end Loading Loading @@ -149,8 +150,7 @@ module JsDuck def copy_template(template_dir, dir) puts "Copying template files to #{dir}..." if @verbose FileUtils.cp_r(template_dir, dir) FileUtils.mkdir(dir + "/output") FileUtils.mkdir(dir + "/source") init_output_dirs(dir) end def clear_dir(dir) Loading @@ -158,6 +158,11 @@ module JsDuck FileUtils.rm_r(dir) end end def init_output_dirs(dir) FileUtils.mkdir(dir + "/output") FileUtils.mkdir(dir + "/source") end end end lib/jsduck/source_formatter.rb +9 −4 Original line number Diff line number Diff line Loading @@ -8,16 +8,21 @@ module JsDuck class SourceFormatter # Initializes SourceFormatter to the directory where # HTML-formatted source files will be placed def initialize(output_dir) # HTML-formatted source files will be placed. # # formatter can be either :format_page or :format_pre; with the # first one the whole HTML page is created, otherwise just a # contents of <pre> element. def initialize(output_dir, formatter = :format_page) @output_dir = output_dir @formatter = formatter end # Converts source to HTML and writes into file in output # directory. It returns the name of the file that it wrote. def write(source, filename) fname = uniq_html_filename(filename) File.open(fname, 'w') {|f| f.write(format(source)) } File.open(fname, 'w') {|f| f.write(self.send(@formatter, source)) } fname end Loading @@ -36,7 +41,7 @@ module JsDuck end # Returns full source for HTML page def format(source) def format_page(source) return <<-EOHTML <!DOCTYPE html> <html> Loading Loading
lib/jsduck/app.rb +10 −5 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ module JsDuck clear_dir(@output_dir) if @export FileUtils.mkdir(@output_dir) init_output_dirs(@output_dir) else copy_template(@template_dir, @output_dir) end Loading @@ -47,7 +48,7 @@ module JsDuck classes = @timer.time(:aggregating) { filter_classes(result) } if @export == :json @timer.time(:generating) { write_json(@output_dir, classes) } @timer.time(:generating) { write_json(@output_dir+"/output", classes) } else @timer.time(:generating) { write_tree(@output_dir+"/output/tree.js", classes) } @timer.time(:generating) { write_members(@output_dir+"/output/members.js", classes) } Loading @@ -59,13 +60,13 @@ module JsDuck # Parses the files in parallel using as many processes as available CPU-s def parallel_parse(filenames) src = SourceFormatter.new(@output_dir + "/source") src = SourceFormatter.new(@output_dir + "/source", @export ? :format_pre : :format_page) Parallel.map(filenames) do |fname| puts "Parsing #{fname} ..." if @verbose code = IO.read(fname) { :filename => fname, :html_filename => @export ? "" : File.basename(src.write(code, fname)), :html_filename => File.basename(src.write(code, fname)), :data => Parser.new(code).parse, } end Loading Loading @@ -149,8 +150,7 @@ module JsDuck def copy_template(template_dir, dir) puts "Copying template files to #{dir}..." if @verbose FileUtils.cp_r(template_dir, dir) FileUtils.mkdir(dir + "/output") FileUtils.mkdir(dir + "/source") init_output_dirs(dir) end def clear_dir(dir) Loading @@ -158,6 +158,11 @@ module JsDuck FileUtils.rm_r(dir) end end def init_output_dirs(dir) FileUtils.mkdir(dir + "/output") FileUtils.mkdir(dir + "/source") end end end
lib/jsduck/source_formatter.rb +9 −4 Original line number Diff line number Diff line Loading @@ -8,16 +8,21 @@ module JsDuck class SourceFormatter # Initializes SourceFormatter to the directory where # HTML-formatted source files will be placed def initialize(output_dir) # HTML-formatted source files will be placed. # # formatter can be either :format_page or :format_pre; with the # first one the whole HTML page is created, otherwise just a # contents of <pre> element. def initialize(output_dir, formatter = :format_page) @output_dir = output_dir @formatter = formatter end # Converts source to HTML and writes into file in output # directory. It returns the name of the file that it wrote. def write(source, filename) fname = uniq_html_filename(filename) File.open(fname, 'w') {|f| f.write(format(source)) } File.open(fname, 'w') {|f| f.write(self.send(@formatter, source)) } fname end Loading @@ -36,7 +41,7 @@ module JsDuck end # Returns full source for HTML page def format(source) def format_page(source) return <<-EOHTML <!DOCTYPE html> <html> Loading