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