Commit 99283a19 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Merge branch 'master' into touch-examples

Copying of touch build was done inside copy_touch2_images, which
wasn't really the correct place.  Also, all the copy_*_images
methods were removed, so I created a separate copy_touch_build
method.
parents 4040d360 d7c1a2d5
Loading
Loading
Loading
Loading
+12 −36
Original line number Diff line number Diff line
@@ -170,6 +170,8 @@ class JsDuckRunner
      "--categories", "#{@sdk_dir}/extjs/docs/categories.json",
      "--output", "#{@out_dir}",
      "--builtin-classes",
      "--images", "#{@sdk_dir}/extjs/docs/resources",
      "--images", "#{@sdk_dir}/platform/docs/resources",
      "#{@sdk_dir}/extjs/src",
      "#{@sdk_dir}/platform/src",
      "#{@sdk_dir}/platform/core/src",
@@ -182,6 +184,7 @@ class JsDuckRunner
      "--footer", "Ext JS 4.0 Docs - Generated with <a href='https://github.com/senchalabs/jsduck'>JSDuck</a> revison #{revision}",
      "--ignore-global",
      "--no-warnings",
      "--images", "#{@ext_dir}/docs/doc-resources",
      "--output", "#{@out_dir}",
      "#{@ext_dir}/src",
    ]
@@ -201,6 +204,7 @@ class JsDuckRunner
      "--videos", "#{@sdk_dir}/touch/doc-resources/videos.json",
      "--output", "#{@out_dir}",
      "--external=google.maps.Map,google.maps.LatLng",
      "--images", "#{@sdk_dir}/touch/doc-resources",
      "#{@sdk_dir}/touch/resources/themes/stylesheets/sencha-touch/default",
    ]

@@ -223,6 +227,7 @@ class JsDuckRunner
      "--examples", "#{@sdk_dir}/touch/docs/examples.json",
      "--output", "#{@out_dir}",
      "--external=google.maps.Map,google.maps.LatLng",
      "--images", "#{@sdk_dir}/touch/docs/resources",
      "#{@sdk_dir}/touch/resources/themes/stylesheets/sencha-touch/default",
    ]

@@ -242,7 +247,7 @@ class JsDuckRunner
      "--videos", "#{@animator_dir}/docs/videos.json",
      "--guides", "#{@animator_dir}/docs/guides.json",
      "--examples", "#{@animator_dir}/docs/examples/examples.json",
      "--output", "#{@out_dir}"
      "--output", "#{@out_dir}",
    ]
  end

@@ -334,33 +339,6 @@ class JsDuckRunner
    ]
  end

  # Copy over the images that SDK documentation links to
  def copy_sdk_images
    system "cp -r #{@sdk_dir}/extjs/docs/resources #{@out_dir}/doc-resources"
    system "cp -r #{@sdk_dir}/platform/docs/resources/* #{@out_dir}/doc-resources"
  end

  # Copy over the images that Ext4 documentation links to
  def copy_ext4_images
    system "cp -r #{@ext_dir}/docs/doc-resources #{@out_dir}/doc-resources"
  end

  # Copy over the images that Sencha Touch documentation links to.
  def copy_touch_images
    system "cp -r #{@sdk_dir}/touch/doc-resources #{@out_dir}/doc-resources"
  end

  # Copy over the images that Sencha Touch documentation links to.
  def copy_touch2_images
    system "cp -r #{@sdk_dir}/touch/docs/resources #{@out_dir}/doc-resources"
    system "cp -r #{@sdk_dir}/touch/build #{@out_dir}/touch"
  end

  # Copy over the images that Animator documentation links to.
  def copy_animator_images
    system "cp -r #{@animator_dir}/docs/resources #{@out_dir}/doc-resources"
  end

  # Copy over SDK examples
  def copy_sdk_examples
    system "mkdir #{@out_dir}/extjs/builds"
@@ -375,6 +353,11 @@ class JsDuckRunner
    system "cp -r #{@animator_dir}/docs/examples #{@out_dir}/extjs"
  end

  # Copy over Sencha Touch
  def copy_touch2_build
    system "cp -r #{@sdk_dir}/touch/build #{@out_dir}/touch"
  end

  def run
    # Pass multiple arguments to system, so we'll take advantage of the built-in escaping
    system(*["ruby", "bin/jsduck"].concat(@options))
@@ -409,8 +392,6 @@ task :sdk, [:mode] => :sass do |t, args|
  runner.add_google_analytics if mode == "live"
  runner.run

  runner.copy_sdk_images

  runner.copy_sdk_examples if mode == "export" || mode == "live"
end

@@ -427,8 +408,6 @@ task :ext4, [:mode] => :sass do |t, args|
  runner.add_debug if mode == "debug"
  runner.add_seo
  runner.run

  runner.copy_ext4_images
end

desc "Run JSDuck on Sencha Touch (for internal use at Sencha)\n" +
@@ -444,8 +423,6 @@ task :touch, [:mode] => :sass do |t, args|
  runner.add_debug if mode == "debug"
  runner.add_seo if mode == "debug" || mode == "live"
  runner.run

  runner.copy_touch_images
end

desc "Run JSDuck on Sencha Touch 2 (for internal use at Sencha)\n" +
@@ -462,7 +439,7 @@ task :touch2, [:mode] => :sass do |t, args|
  runner.add_seo if mode == "debug" || mode == "live"
  runner.run

  runner.copy_touch2_images
  runner.copy_touch2_build
end

desc "Run JSDuck on Sencha Animator (for internal use at Sencha)\n" +
@@ -480,7 +457,6 @@ task :animator, [:mode] => :sass do |t, args|
  runner.add_seo if mode == "debug" || mode == "live"
  runner.run

  runner.copy_animator_images
  runner.copy_animator_examples
end

+25 −23
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ old_classes.each_pair do |name, cls|
end

# do HTML output
title = "Comparison of Ext 3.4.0 and Ext 4.0.6"
title = "Comparison of Ext 4.0.7 and Ext 4.1.0"
#title = "Comparison of Touch 1.1.1 and Touch 2.0.0"
html = []
html << <<-EOHTML
@@ -111,6 +111,7 @@ EOHTML
html << "<ul>"
diff_data.sort! {|a, b| a[:name] <=> b[:name] }
diff_data.each do |cls|
  if !cls[:found] || cls[:diff].length > 0
    html << "<li>"
    if cls[:found]
      new_name = (cls[:new_name] == cls[:name] ? "" : " --> " + cls[:new_name])
@@ -138,6 +139,7 @@ diff_data.each do |cls|
    end
    html << "</li>"
  end
end
html << "</ul>"

html << "<h2>Summary</h2>"
+16 −6
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ require 'jsduck/guides'
require 'jsduck/videos'
require 'jsduck/examples'
require 'jsduck/categories'
require 'jsduck/images'
require 'jsduck/json_duck'
require 'jsduck/lint'
require 'fileutils'
@@ -49,6 +50,8 @@ module JsDuck
      Aliases.new(@relations).resolve_all
      Lint.new(@relations).run

      @images = Images.new(@opts.images)

      @welcome = Welcome.new
      if @opts.welcome
        @timer.time(:parsing) { @welcome.parse(@opts.welcome) }
@@ -103,6 +106,7 @@ module JsDuck
        @timer.time(:generating) { @guides.write(@opts.output_dir+"/guides") }
        @timer.time(:generating) { @videos.write(@opts.output_dir+"/videos") }
        @timer.time(:generating) { @examples.write(@opts.output_dir+"/examples") }
        @timer.time(:generating) { @images.copy(@opts.output_dir+"/images") }
      end

      @timer.report
@@ -150,16 +154,22 @@ module JsDuck

    # Formats each class
    def format_classes
      formatter = ClassFormatter.new(@relations, get_doc_formatter)
      doc_formatter = get_doc_formatter
      doc_formatter.img_path = "images"
      class_formatter = ClassFormatter.new(@relations, doc_formatter)
      # Don't format types when exporting
      formatter.include_types = !@opts.export
      class_formatter.include_types = !@opts.export
      # Format all doc-objects in parallel
      formatted_docs = @parallel.map(@relations.classes) do |cls|
        formatter.format(cls.internal_doc)
      formatted_classes = @parallel.map(@relations.classes) do |cls|
        {
          :doc => class_formatter.format(cls.internal_doc),
          :images => doc_formatter.images
        }
      end
      # Then merge the data back to classes sequentially
      formatted_docs.each do |doc|
        @relations[doc[:name]].internal_doc = doc
      formatted_classes.each do |cls|
        @relations[cls[:doc][:name]].internal_doc = cls[:doc]
        cls[:images].each {|img| @images.add(img) }
      end
    end

+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ module JsDuck

    # Parses categories in JSON file
    def parse(path)
      @categories = JsonDuck.read(path)["categories"]
      @categories = JsonDuck.read(path)

      # Perform expansion on all class names containing * wildcard
      @categories.each do |cat|
+10 −1
Original line number Diff line number Diff line
@@ -33,6 +33,13 @@ module JsDuck
    # passed in a filename
    attr_accessor :get_example

    # This will hold list of all image paths gathered from {@img} tags.
    attr_accessor :images

    # Base path to prefix images from {@img} tags.
    # Defaults to no prefix.
    attr_accessor :img_path

    # Sets up instance to work in context of particular class, so
    # that when {@link #blah} is encountered it knows that
    # Context#blah is meant.
@@ -57,6 +64,7 @@ module JsDuck
      @doc_context = {}
      @max_length = 120
      @relations = {}
      @images = []
      @link_tpl = '<a href="%c%#%m">%a</a>'
      @img_tpl = '<img src="%u" alt="%a"/>'
      @example_tpl = '<pre class="inline-example"><code>%a</code></pre>'
@@ -167,10 +175,11 @@ module JsDuck

    # applies the image template
    def img(url, alt_text)
      @images << url
      @img_tpl.gsub(/(%\w)/) do
        case $1
        when '%u'
          url
          @img_path ? (@img_path + "/" + url) : url
        when '%a'
          CGI.escapeHTML(alt_text||"")
        else
Loading