forked from macdonst/callback-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjodoc.rb
51 lines (40 loc) · 1.44 KB
/
jodoc.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class JoDoc
JO_DOC_CLI = 'jodoc'
TEMPLATE_PATH = File.expand_path File.join(File.dirname(__FILE__), '..', '..', 'template', 'docs' )
attr_accessor :input_directory
attr_accessor :output_directory
def initialize(input_directory, output_directory, options)
@input_directory = input_directory
@output_directory = output_directory
@template_directories = [ File.join TEMPLATE_PATH, 'default' ]
# add custom language template
if options[:lang]
@template_directories.push(File.join TEMPLATE_PATH, options[:lang])
end
check_dependencies
end
def run
# Copy HTML template assets
@template_directories.each do |template|
next unless File.directory? template
FileUtils.cp_r File.join(template, '.'), @output_directory
end
# Run joDoc
FileUtils.cd @input_directory do
`jodoc --output #{@output_directory} --title "PhoneGap API Documentation" --template #{@output_directory}/index.html ./ 2> /dev/null`
end
end
protected
def check_dependencies
die 'The jodoc script is not in your path' unless command_exists?(JO_DOC_CLI)
[@input_directory, @template_directories[0]].each do |directory|
die "The directory #{directory}/ should exist." unless File.directory? directory
end
end
def command_exists?(command)
system("which #{command} > /dev/null 2> /dev/null")
end
def die(message)
raise StandardError, message
end
end