Sha256: e60fe6d2766295b1cef522027fb2e3447fb5a4b343a89b70571a72aece3db3ec

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

require 'jsdoc-toolkit'
require 'pathname'

module JsDocToolkit
  class Generator
    DefaultOptions = {:recurse => "-r", :all => "-a", :template => %Q[-t=#{JsDocTemplatePath + "jsdoc"}],
                      :verbose => "-v", :unique => "-u"}
    
    def build(options)
      raise RuntimeError, "java was not found in your PATH." if `which java 2>/dev/null`.strip.empty?
      raise ArgumentError, ":src_dir was not specified" unless options[:src_dir]
      raise ArgumentError, ":doc_dir was not specified" unless options[:doc_dir]
      
      src_dir, doc_dir = Pathname(options[:src_dir]), Pathname(options[:doc_dir])
      raise ArgumentError, ":src_dir does not exist" unless src_dir.exist?
      raise ArgumentError, ":doc_dir does not exist" unless doc_dir.exist?
      run_jsdoc(src_dir, doc_dir)
    end
  
  private
  
    def run_jsdoc(src_dir, doc_dir)
      system("java", "-jar", JsDocJarPath, JsDocJsPath, %Q[-d=#{doc_dir.expand_path}], *merge_defaults_with_src(src_dir))
    end
    
    def merge_defaults_with_src(src_dir)
      DefaultOptions.values + [src_dir.to_s]
    end
    
  end # Generator
end   # JsDocToolkit

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
jsdoc-toolkit-0.1.4 lib/jsdoc-toolkit/generator.rb