Commit fecde35c authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Merge remote-tracking branch 'origin/esprima-parser' into esprima-parser

parents 92e939e6 b59388fb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -233,6 +233,7 @@ task :sdk => :sass do
    "--output", OUT_DIR,
    "--config", "#{SDK_DIR}/extjs/docs/config.json",
    "--examples-base-url", "extjs-build/examples/",
    "--import", "Ext JS 1:compare/ext11",
    "--import", "Ext JS 2:compare/ext23",
    "--import", "Ext JS 3:compare/ext34",
    "--import", "Ext JS 4.0.7:compare/ext407",
+4 −4
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ module JsDuck
      @opts = opts
      # Sets the nr of parallel processes to use.
      # Set to 0 to disable parallelization completely.
      @parallel = ParallelWrap.new(:in_processes => @opts.processes)
      ParallelWrap.in_processes = @opts.processes
      # Turn JSON pretty-printing on/off
      JsonDuck.pretty = @opts.pretty_json
    end
@@ -83,7 +83,7 @@ module JsDuck
        # between source files and classes. Therefore it MUST to be done
        # after writing sources which needs the links to work.
        if @opts.source
          source_writer = SourceWriter.new(parsed_files, @parallel)
          source_writer = SourceWriter.new(parsed_files)
          source_writer.write(@opts.output_dir + "/source")
        end
        format_classes
@@ -104,7 +104,7 @@ module JsDuck

    # Parses the files in parallel using as many processes as available CPU-s
    def parallel_parse(filenames)
      @parallel.map(filenames) do |fname|
      ParallelWrap.map(filenames) do |fname|
        Logger.instance.log("Parsing", fname)
        begin
          SourceFile.new(JsDuck::IO.read(fname), fname, @opts)
@@ -165,7 +165,7 @@ module JsDuck
      # Don't format types when exporting
      class_formatter.include_types = !@opts.export
      # Format all doc-objects in parallel
      formatted_classes = @parallel.map(@relations.classes) do |cls|
      formatted_classes = ParallelWrap.map(@relations.classes) do |cls|
        Logger.instance.log("Markdown formatting #{cls[:name]}")
        begin
          {
+2 −3
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ module JsDuck
    def initialize(exporter_class, relations, opts)
      @relations = relations
      @exporter = exporter_class.new(relations, opts)
      @parallel = ParallelWrap.new(:in_processes => opts.processes)
    end

    # Writes class data into given directory or STDOUT when dir == :stdout.
@@ -24,13 +23,13 @@ module JsDuck
    private

    def write_stdout
      json = @parallel.map(@relations.classes) {|cls| @exporter.export(cls) }.compact
      json = ParallelWrap.map(@relations.classes) {|cls| @exporter.export(cls) }.compact
      Stdout.instance.add(json)
    end

    def write_dir(dir, extension)
      FileUtils.mkdir(dir)
      @parallel.each(@relations.classes) do |cls|
      ParallelWrap.each(@relations.classes) do |cls|
        filename = dir + "/" + cls[:name] + extension
        Logger.instance.log("Writing docs", filename)
        json = @exporter.export(cls)
+2 −3
Original line number Diff line number Diff line
@@ -10,7 +10,6 @@ module JsDuck
    def initialize(exporter_class, guides, opts)
      @guides = guides
      @exporter = exporter_class.new(guides, opts)
      @parallel = ParallelWrap.new(:in_processes => opts.processes)
    end

    # Writes guide data into given directory or STDOUT when dir == :stdout.
@@ -24,13 +23,13 @@ module JsDuck
    private

    def write_stdout
      json = @parallel.map(all_guides) {|guide| @exporter.export_guide(guide) }.compact
      json = ParallelWrap.map(all_guides) {|guide| @exporter.export_guide(guide) }.compact
      Stdout.instance.add(json)
    end

    def write_dir(dir, extension)
      FileUtils.mkdir(dir) unless File.exists?(dir)
      @parallel.each(all_guides) do |guide|
      ParallelWrap.each(all_guides) do |guide|
        filename = dir + "/" + guide["name"] + extension
        Logger.instance.log("Writing guide", filename)
        json = @exporter.export_guide(guide)
+11 −6
Original line number Diff line number Diff line
require 'jsduck/json_duck'
require 'jsduck/null_object'
require 'jsduck/logger'
require 'jsduck/parallel_wrap'

module JsDuck

@@ -21,7 +23,7 @@ module JsDuck
      imports.map do |ver|
        {
          :version => ver[:version],
          :classes => ver[:path] ? read(ver[:path]) : current_version,
          :classes => ver[:path] ? read(ver) : current_version,
        }
      end
    end
@@ -31,13 +33,16 @@ module JsDuck
    end

    # Reads in data from all .json files in directory
    def read(path)
      classes = {}
      Dir[path + "/*.json"].each do |filename|
    def read(ver)
      # Map list of files into pairs of (classname, members-hash)
      pairs = ParallelWrap.map(Dir[ver[:path] + "/*.json"]) do |filename|
        JsDuck::Logger.instance.log("Importing #{ver[:version]}", filename)
        json = JsonDuck.read(filename)
        classes[json["name"]] = members_id_index(json)
        [json["name"],  members_id_index(json)]
      end
      classes

      # Turn key-value pairs array into hash
      return Hash[ pairs ]
    end

    # creates index of all class members
Loading