Author: boisvert
Date: Tue Nov 16 04:44:22 2010
New Revision: 1035528
URL: http://svn.apache.org/viewvc?rev=1035528&view=rev
Log:
BUILDR-550 Add support for groovydoc
DocEngine.source_ext now supports array result
Upgrade to Groovy 1.7.5
Added:
buildr/trunk/spec/groovy/doc_spec.rb
Modified:
buildr/trunk/lib/buildr/core/doc.rb
buildr/trunk/lib/buildr/groovy.rb
buildr/trunk/lib/buildr/groovy/compiler.rb
Modified: buildr/trunk/lib/buildr/core/doc.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/core/doc.rb?rev=1035528&r1=1035527&r2=1035528&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/core/doc.rb (original)
+++ buildr/trunk/lib/buildr/core/doc.rb Tue Nov 16 04:44:22 2010
@@ -204,7 +204,9 @@ module Buildr
def source_files #:nodoc:
@source_files ||= @files.map(&:to_s).map do |file|
- File.directory?(file) ? FileList[File.join(file,
"**/*.#{engine.class.source_ext}")] : file
+ Array(engine.class.source_ext).map do |ext|
+ File.directory?(file) ? FileList[File.join(file, "**/*.#{ext}")] :
file
+ end
end.flatten.reject { |file| @files.exclude?(file) }
end
Modified: buildr/trunk/lib/buildr/groovy.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/groovy.rb?rev=1035528&r1=1035527&r2=1035528&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/groovy.rb (original)
+++ buildr/trunk/lib/buildr/groovy.rb Tue Nov 16 04:44:22 2010
@@ -16,4 +16,5 @@
require 'buildr/groovy/compiler'
require 'buildr/groovy/bdd'
+require 'buildr/groovy/doc'
require 'buildr/groovy/shell'
Modified: buildr/trunk/lib/buildr/groovy/compiler.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/groovy/compiler.rb?rev=1035528&r1=1035527&r2=1035528&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/groovy/compiler.rb (original)
+++ buildr/trunk/lib/buildr/groovy/compiler.rb Tue Nov 16 04:44:22 2010
@@ -68,7 +68,7 @@ module Buildr::Groovy
#
# namespace before this file is required.
REQUIRES = ArtifactNamespace.for(self) do |ns|
- ns.groovy! 'org.codehaus.groovy:groovy:jar:>=1.7.1'
+ ns.groovy! 'org.codehaus.groovy:groovy:jar:>=1.7.5'
ns.commons_cli! 'commons-cli:commons-cli:jar:>=1.2'
ns.asm! 'asm:asm:jar:>=3.2'
ns.antlr! 'antlr:antlr:jar:>=2.7.7'
Added: buildr/trunk/spec/groovy/doc_spec.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/spec/groovy/doc_spec.rb?rev=1035528&view=auto
==============================================================================
--- buildr/trunk/spec/groovy/doc_spec.rb (added)
+++ buildr/trunk/spec/groovy/doc_spec.rb Tue Nov 16 04:44:22 2010
@@ -0,0 +1,65 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with this
+# work for additional information regarding copyright ownership. The ASF
+# licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+
+require File.expand_path(File.join(File.dirname(__FILE__), '..',
'spec_helpers'))
+
+describe "Groovydoc" do
+
+ it 'should pick :windowtitle from project name by default' do
+ define 'foo' do
+ doc.using :groovydoc
+
+ define 'bar' do
+ doc.using :groovydoc
+ end
+ end
+
+ project('foo').doc.options[:windowtitle].should eql('foo')
+ project('foo:bar').doc.options[:windowtitle].should eql('foo:bar')
+ end
+
+ it 'should pick :windowtitle from project description by default, if
available' do
+ desc 'My App'
+ define 'foo' do
+ doc.using :groovydoc
+ end
+ project('foo').doc.options[:windowtitle].should eql('My App')
+ end
+
+ it 'should not override explicit :windowtitle option' do
+ define 'foo' do
+ doc.using :groovydoc
+ doc.using :windowtitle => 'explicit'
+ end
+ project('foo').doc.options[:windowtitle].should eql('explicit')
+ end
+
+ it 'should identify itself from groovy source directories' do
+ write 'src/main/groovy/some/A.java', 'package some; public class A {}'
+ write 'src/main/groovy/some/B.groovy', 'package some; public class B {}'
+ define('foo') do
+ doc.engine.should be_a(Buildr::Doc::Groovydoc)
+ end
+ end
+
+ it 'should produce Groovydocs' do
+ write 'src/main/groovy/some/A.java', 'package some; public class A {}'
+ write 'src/main/groovy/some/B.groovy', 'package some; public class B {}'
+ define('foo')
+ project('foo').doc.invoke
+ file('target/doc/index.html').should exist
+ end
+end