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


Reply via email to