87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/buildr/scala/doc.rb', line 87
def generate(sources, target, options = {})
cmd_args = [ '-d', target, (trace?(:vscaladoc) ? '-verbose' : ''),
'-sourcepath', project.compile.sources.join(File::PATH_SEPARATOR) ]
options.reject { |key, value| [:sourcepath, :classpath].include?(key) }.
each { |key, value| value.invoke if value.respond_to?(:invoke) }.
each do |key, value|
case value
when true, nil
cmd_args << "-#{key}"
when false
cmd_args << "-no#{key}"
when Hash
value.each { |k,v| cmd_args << "-#{key}" << k.to_s << v.to_s }
else
cmd_args += Array(value).map { |item| ["-#{key}", item.to_s] }.flatten
end
end
[:sourcepath, :classpath].each do |option|
Array(options[option]).flatten.tap do |paths|
cmd_args << "-#{option}" << paths.flatten.map(&:to_s).join(File::PATH_SEPARATOR) unless paths.empty?
end
end
cmd_args += sources.flatten.uniq
unless Buildr.application.options.dryrun
info "Generating VScaladoc for #{project.name}"
trace (['vscaladoc'] + cmd_args).join(' ')
Java.load
Java.org.scala_tools.vscaladoc.Main.main(cmd_args.to_java(Java.java.lang.String)) == 0 or
fail 'Failed to generate VScaladocs, see errors above'
end
end
|