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

Read videos config from JSON file in SDK.

Added --videos option.

Created simple Videos class for parsing the JSON.
parent 0b50fa0a
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ def run_jsduck(extra_options)
    # --external=Error to ignore the Error class that Ext.Error extends.
    "--external", "Error",
    "--guides", "#{SDK_DIR}/guides/guides.json",
    "--videos", "#{SDK_DIR}/guides/videos.json",
    "--examples", "#{SDK_DIR}/extjs/doc-resources",
    "--categories", "#{SDK_DIR}/extjs/doc-resources/categories.json",
    "--output", "#{OUT_DIR}",
@@ -52,8 +53,6 @@ def run_jsduck(extra_options)
  # Finally copy over the images that documentation links to.
  system "cp -r #{SDK_DIR}/extjs/doc-resources #{OUT_DIR}/doc-resources"
  system "cp -r #{SDK_DIR}/platform/doc-resources/* #{OUT_DIR}/doc-resources"
  # And copy videos.js
  system "cp #{SDK_DIR}/guides/videos.js #{OUT_DIR}/guides/"
end

desc "Run JSDuck on ExtJS SDK"
+7 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ require 'jsduck/timer'
require 'jsduck/parallel_wrap'
require 'jsduck/logger'
require 'jsduck/guides'
require 'jsduck/videos'
require 'jsduck/categories'
require 'jsduck/jsonp'
require 'jsduck/lint'
@@ -49,6 +50,11 @@ module JsDuck
        @timer.time(:parsing) { @guides.parse(@opts.guides) }
      end

      @videos = Videos.new
      if @opts.videos
        @timer.time(:parsing) { @videos.parse(@opts.videos) }
      end

      @categories = Categories.new(get_doc_formatter, @relations)
      if @opts.categories_path
        @timer.time(:parsing) do
@@ -128,6 +134,7 @@ module JsDuck
      js = "Docs.classData = " + JSON.generate( tree ) + ";"
      js += "Docs.icons = " + JSON.generate( icons ) + ";"
      js += "Docs.guides = " + JSON.generate( @guides.to_array ) + ";"
      js += "Docs.videos = " + JSON.generate( @videos.to_array ) + ";"
      File.open(@opts.output_dir+"/output/tree.js", 'w') {|f| f.write(js) }
    end

+7 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ module JsDuck
    attr_accessor :head_html
    attr_accessor :body_html
    attr_accessor :guides
    attr_accessor :videos
    attr_accessor :categories_path
    attr_accessor :examples_dir
    attr_accessor :link_tpl
@@ -48,6 +49,7 @@ module JsDuck
      @head_html = ""
      @body_html = ""
      @guides = nil
      @videos = nil
      @categories_path = nil
      @examples_dir = nil
      @link_tpl = '<a href="#/api/%c%-%m" rel="%c%-%m" class="docClass">%a</a>'
@@ -134,6 +136,11 @@ module JsDuck
          @guides = path
        end

        opts.on('--videos=PATH',
          "Path to JSON file describing the videos.", " ") do |path|
          @videos = path
        end

        opts.on('--categories=PATH',
          "Path to JSON file which defines categories for classes.", " ") do |path|
          @categories_path = path

lib/jsduck/videos.rb

0 → 100644
+23 −0
Original line number Diff line number Diff line
require 'json'

module JsDuck

  # Reads in videos JSON file
  class Videos
    def initialize
      @videos = []
    end

    # Parses videos config file
    def parse(filename)
      @videos = JSON.parse(IO.read(filename))
    end

    # Returns all videos as array
    def to_array
      @videos
    end

  end

end
+0 −1
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@
  <script type="text/javascript" src="resources/codemirror/javascript.js"></script>
  <script type="text/javascript" src="{extjs_path}"></script>
  <script type="text/javascript" src="extjs/examples/data.js"></script>
  <script type="text/javascript" src="guides/videos.js"></script>
  <script type="text/javascript" src="resources/prettify/prettify.js"></script>
  <script type="text/javascript" src="app.js"></script>
  <!-- END JS -->