Sha256: eefa80d942349d3270b7bf31e1f31eecb00b865770aedf67b23829cee5679e8f

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 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)
      src_files, doc_dir = Array(options[:src_files]), Pathname(options[:doc_dir].to_s)
      raise RuntimeError, "java was not found in your PATH." if `which java 2>/dev/null`.strip.empty?
      raise ArgumentError, ":src_files was not specified or was empty" if src_files.empty?
      raise ArgumentError, ":doc_dir was not specified or does not exist" unless options[:doc_dir] && doc_dir.exist?

      run_jsdoc(src_files, doc_dir)
    end
  
  private
  
    def run_jsdoc(src_files, doc_dir)
      system("java", "-jar", JsDocJarPath, JsDocJsPath, %Q[-d=#{doc_dir.expand_path}], *merge_defaults_with_src(src_files))
    end
    
    def merge_defaults_with_src(src_files)
      DefaultOptions.values + src_files
    end
    
  end # Generator
end   # JsDocToolkit

Version data entries

1 entries across 1 versions & 1 rubygems

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