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/02/27 21:17:44 UTC

svn commit: r631702 - in /incubator/buildr/trunk: CHANGELOG doc/pages/building.textile doc/pages/whats_new.textile lib/core/compile.rb lib/core/environment.rb spec/common_spec.rb spec/compile_spec.rb

Author: assaf
Date: Wed Feb 27 12:17:39 2008
New Revision: 631702

URL: http://svn.apache.org/viewvc?rev=631702&view=rev
Log:
Resources task picks the default mapping from the filter element of the current profile (if specified).

Modified:
    incubator/buildr/trunk/CHANGELOG
    incubator/buildr/trunk/doc/pages/building.textile
    incubator/buildr/trunk/doc/pages/whats_new.textile
    incubator/buildr/trunk/lib/core/compile.rb
    incubator/buildr/trunk/lib/core/environment.rb
    incubator/buildr/trunk/spec/common_spec.rb
    incubator/buildr/trunk/spec/compile_spec.rb

Modified: incubator/buildr/trunk/CHANGELOG
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/CHANGELOG?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/CHANGELOG (original)
+++ incubator/buildr/trunk/CHANGELOG Wed Feb 27 12:17:39 2008
@@ -9,6 +9,7 @@
 * Added: HTTP Basic authentication support (Yuen-Chi Lian).
 * Added: EAR packaging (Victor Hugo Borja).
 * Added: Profiles(.yaml), based on the code provided by Yanko Ivanov.
+* Added: Resources task picks the default mapping from the filter element of the current profile (if specified).
 * Added: Consolidated API for RJB and JRuby, replacing the now deprecated JavaWrapper.
 * Added: JRuby 1.1 support (Victor Hugo Borja, Nick Sieger).
 * Added: IDEA 7 task: use buildr idea7x (Shane Witbeck).

Modified: incubator/buildr/trunk/doc/pages/building.textile
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/doc/pages/building.textile?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/doc/pages/building.textile (original)
+++ incubator/buildr/trunk/doc/pages/building.textile Wed Feb 27 12:17:39 2008
@@ -326,6 +326,24 @@
   'copyright'=>'Acme Inc (C) 2007'
 }}}
 
+
+You can also use "profiles":settings_profiles.html#profiles to supply a
+name/value map that all @resources@ task should default to, by adding a
+@filter@ element to each of the profiles.  The following examples shows a
+@profiles.yaml@ file that applies the same filter in development and test
+environments:
+
+{{{!yaml
+filter: &alpha1
+  version: experimental
+  copyright: Acme Inc (C) 2007
+  
+development:
+  filter: *alpha1
+test:
+  filter: *alpha1
+}}}
+
 You can specify a different format by passing it as the first argument.
 Supported formats include:
 

Modified: incubator/buildr/trunk/doc/pages/whats_new.textile
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/doc/pages/whats_new.textile?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/doc/pages/whats_new.textile (original)
+++ incubator/buildr/trunk/doc/pages/whats_new.textile Wed Feb 27 12:17:39 2008
@@ -126,6 +126,8 @@
   jdbc: oracle:thin:@bigstrong:1521:mighty
 }}}
 
+You can also use profiles to specify default filters for the "@resources@ task":building.html#resources.
+
 "Read more ...":settings_profiles.html#profiles
 
 

Modified: incubator/buildr/trunk/lib/core/compile.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/core/compile.rb?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/core/compile.rb (original)
+++ incubator/buildr/trunk/lib/core/compile.rb Wed Feb 27 12:17:39 2008
@@ -403,6 +403,7 @@
     def initialize(*args) #:nodoc:
       super
       @filter = Buildr::Filter.new
+      @filter.using Buildr.profile['filter'] if Buildr.profile['filter']
       enhance do
         filter.run if target && !sources.empty?
       end

Modified: incubator/buildr/trunk/lib/core/environment.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/lib/core/environment.rb?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/lib/core/environment.rb (original)
+++ incubator/buildr/trunk/lib/core/environment.rb Wed Feb 27 12:17:39 2008
@@ -154,7 +154,11 @@
     unless @profiles
       filename = ['Profiles.yaml', 'profiles.yaml'].map { |fn| File.expand_path(fn, File.dirname(Rake.application.rakefile)) }.
         detect { |filename| File.exist?(filename) }
-      @profiles = filename ? YAML::load(File.read(filename)) : {}
+      profiles = filename && YAML::load(File.read(filename)) || {}
+      raise 'Profiles file must be a YAML file with a name: structure map.' unless Hash === profiles
+      @profiles = profiles.inject({}) { |hash, (name, value)| value ||= {} 
+        raise 'Each profile must be empty or contain name/value pairs.' unless Hash === value
+        hash.merge(name=>(value || {})) }
     end
     @profiles
   end

Modified: incubator/buildr/trunk/spec/common_spec.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/common_spec.rb?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/common_spec.rb (original)
+++ incubator/buildr/trunk/spec/common_spec.rb Wed Feb 27 12:17:39 2008
@@ -451,7 +451,7 @@
 end
 
 
-describe Buildr::Options, ' proxy.exclude' do
+describe Buildr::Options, 'proxy.exclude' do
   before do
     options.proxy.http = 'http://myproxy:8080'
     @domain = 'domain'
@@ -620,6 +620,16 @@
     YAML
     Buildr.profiles.should == { 'dev'=> { 'foo'=>'bar' }, 'test'=>{ 'bar'=>'baz' } }
   end
+
+  it 'should accept empty profiles file' do
+    write 'Profiles.yaml', "# comment\n\n"
+    Buildr.profiles.should == {}
+  end
+
+  it 'should complain if profiles file is not a map' do
+    write 'Profiles.yaml', 'not_a_map'
+    lambda { Buildr.profiles }.should raise_error
+  end
 end
 
 
@@ -632,5 +642,15 @@
 
   it 'should return empty hash if no proflie available' do
     Buildr.profile.should == {}
+  end
+
+  it 'should accept empty profile' do
+    write 'Profiles.yaml', "development:\n"
+    Buildr.profile.should == {}
+  end
+
+  it 'should complain if profile is not a map' do
+    write 'Profiles.yaml', 'development: not_a_map'
+    lambda { Buildr.profile }.should raise_error
   end
 end

Modified: incubator/buildr/trunk/spec/compile_spec.rb
URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/compile_spec.rb?rev=631702&r1=631701&r2=631702&view=diff
==============================================================================
--- incubator/buildr/trunk/spec/compile_spec.rb (original)
+++ incubator/buildr/trunk/spec/compile_spec.rb Wed Feb 27 12:17:39 2008
@@ -545,5 +545,15 @@
     lambda { project('foo').resources.invoke }.should_not run_task('foo:bar:resources')
   end
 
-  it 'should use current profile for filtering'
+  it 'should use current profile for filtering' do
+    write 'profiles.yaml', <<-YAML
+development:
+  foo: bar
+test:
+  foo: baz
+    YAML
+    write 'src/main/resources/foo', '${foo}'
+    define('foo').compile.invoke
+    file('target/resources/foo').should contain('bar')
+  end
 end