You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by as...@apache.org on 2008/05/19 20:32:40 UTC

svn commit: r657901 - in /incubator/buildr/trunk: CHANGELOG Rakefile lib/buildr/core/compile.rb lib/buildr/core/filter.rb spec/common_spec.rb spec/test_spec.rb

Author: assaf
Date: Mon May 19 11:32:40 2008
New Revision: 657901

URL: http://svn.apache.org/viewvc?rev=657901&view=rev
Log:
Fixed: BUILDR-75 Filter now runs if there's a target directory, even if
there are no source files to copy over, since everyone else just checks
resources.target for existence before depending on it.

Modified:
    incubator/buildr/trunk/CHANGELOG
    incubator/buildr/trunk/Rakefile
    incubator/buildr/trunk/lib/buildr/core/compile.rb
    incubator/buildr/trunk/lib/buildr/core/filter.rb
    incubator/buildr/trunk/spec/common_spec.rb
    incubator/buildr/trunk/spec/test_spec.rb

Modified: incubator/buildr/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/CHANGELOG?rev=657901&r1=657900&r2=657901&view=diff
==============================================================================
--- incubator/buildr/trunk/CHANGELOG (original)
+++ incubator/buildr/trunk/CHANGELOG Mon May 19 11:32:40 2008
@@ -7,6 +7,9 @@
 (only applicable when forking).
 * Fixed: BUILDR-70 JUnit not passing environment variables from the
 :environment option.
+* Fixed: BUILDR-75 Filter now runs if there's a target directory, even if
+there are no source files to copy over, since everyone else just checks
+resources.target for existence before depending on it.
 
 1.3.0 (2008-04-25)
 * Added: Testing with EasyB (Nicolas Modrzyk).

Modified: incubator/buildr/trunk/Rakefile
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/Rakefile?rev=657901&r1=657900&r2=657901&view=diff
==============================================================================
--- incubator/buildr/trunk/Rakefile (original)
+++ incubator/buildr/trunk/Rakefile Mon May 19 11:32:40 2008
@@ -28,7 +28,7 @@
       spec.add_dependency 'ci_reporter', '1.5.1' # must come after builder dependency
     else
       # Place first on the dependency list, otherwise AntWrap picks the latest RJB.
-      spec.dependencies.unshift Gem::Dependency.new('rjb', '=>1.1.0', '<= 1.1.2'])
+      spec.dependencies.unshift Gem::Dependency.new('rjb', ['>=1.1.0', '<= 1.1.2'])
     end
     spec
   end

Modified: incubator/buildr/trunk/lib/buildr/core/compile.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/core/compile.rb?rev=657901&r1=657900&r2=657901&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/core/compile.rb (original)
+++ incubator/buildr/trunk/lib/buildr/core/compile.rb Mon May 19 11:32:40 2008
@@ -403,7 +403,7 @@
       @filter = Buildr::Filter.new
       @filter.using Buildr.settings.profile['filter'] if Hash === Buildr.settings.profile['filter']
       enhance do
-        filter.run if target && !sources.empty?
+        filter.run if target
       end
     end
 

Modified: incubator/buildr/trunk/lib/buildr/core/filter.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/buildr/core/filter.rb?rev=657901&r1=657900&r2=657901&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/buildr/core/filter.rb (original)
+++ incubator/buildr/trunk/lib/buildr/core/filter.rb Mon May 19 11:32:40 2008
@@ -83,7 +83,7 @@
     # For example:
     #   filter.from('src').into('target').using('build'=>Time.now)
     def into(dir)
-      @target = file(File.expand_path(dir.to_s)) { |task| run if target == task && !sources.empty? }
+      @target = file(File.expand_path(dir.to_s)) { |task| run if target == task }
       self
     end
 
@@ -160,7 +160,6 @@
     #
     # Runs the filter.
     def run
-      raise 'No source directory specified, where am I going to find the files to filter?' if sources.empty?
       sources.each { |source| raise "Source directory #{source} doesn't exist" unless File.exist?(source.to_s) }
       raise 'No target directory specified, where am I going to copy the files to?' if target.nil?
 
@@ -176,10 +175,10 @@
         map
       end
         
+      mkpath target.to_s
       return false if copy_map.empty?
 
       verbose(Buildr.application.options.trace || false) do
-        mkpath target.to_s
         copy_map.each do |path, source|
           dest = File.expand_path(path, target.to_s)
           if File.directory?(source)
@@ -198,7 +197,7 @@
                 mapped = regexp_mapper(content) { |key| mapping[key] }
               end
                 #gsub(/\$\{[^}]*\}/) { |str| mapping[str[2..-2]] || str }
-              File.open(dest, 'wb') { |file| file.write mapped }
+                File.open(dest, 'wb') { |file| file.write mapped }
             when nil # No mapping.
               cp source, dest
               File.chmod(0664, dest)
@@ -207,7 +206,7 @@
             end
           end
         end
-        touch target.to_s 
+        touch target.to_s
       end
       true
     end

Modified: incubator/buildr/trunk/spec/common_spec.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/common_spec.rb?rev=657901&r1=657900&r2=657901&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/common_spec.rb (original)
+++ incubator/buildr/trunk/spec/common_spec.rb Mon May 19 11:32:40 2008
@@ -411,10 +411,6 @@
     @filter.from('src').into('target').run.should be(false)
   end
 
-  it 'should fail is source directory not set' do
-    lambda { Filter.new.into('target').run }.should raise_error(RuntimeError, /No source directory/)
-  end
-
   it 'should fail if source directory doesn\'t exist' do
     lambda { Filter.new.from('srced').into('target').run }.should raise_error(RuntimeError, /doesn't exist/)
   end

Modified: incubator/buildr/trunk/spec/test_spec.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/test_spec.rb?rev=657901&r1=657900&r2=657901&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/test_spec.rb (original)
+++ incubator/buildr/trunk/spec/test_spec.rb Mon May 19 11:32:40 2008
@@ -458,6 +458,7 @@
 describe Buildr::Project, 'test:resources' do
   it 'should ignore resources unless they exist' do
     define('foo').test.resources.sources.should be_empty
+    project('foo').test.resources.target.should be_nil
   end
 
   it 'should pick resources from src/test/resources if found' do
@@ -471,6 +472,11 @@
     file('targeted/test/resources/foo').should contain('Foo')
   end
 
+  it 'should create target directory even if no files to copy' do
+    define('foo').test.resources.filter.into('resources')
+    lambda { file(File.expand_path('resources')).invoke }.should change { File.exist?('resources') }.to(true)
+  end
+
   it 'should execute alongside compile task' do
     task 'action'
     define('foo') { test.resources { task('action').invoke } }