diff options
author | Mathias Meyer <meyer@paperplanes.de> | 2010-01-16 14:11:20 +0100 |
---|---|---|
committer | Mathias Meyer <meyer@paperplanes.de> | 2010-01-16 14:11:20 +0100 |
commit | 12a0728fc991441f21b8fada3b9ec71c315c33d7 (patch) | |
tree | 0612693bfda1e9ef42e4c50e8b5b722f60f4a291 | |
parent | 73d3bcddea38209905110a7927449cf9a117857c (diff) | |
download | chef-12a0728fc991441f21b8fada3b9ec71c315c33d7.tar.gz |
CHEF-805: Improved the deploy resource's scm_provider attribute to accept symbols and strings (:git or :subversion) as well as class constants.
-rw-r--r-- | chef/lib/chef/resource/deploy.rb | 7 | ||||
-rw-r--r-- | chef/spec/unit/resource/deploy_spec.rb | 14 |
2 files changed, 19 insertions, 2 deletions
diff --git a/chef/lib/chef/resource/deploy.rb b/chef/lib/chef/resource/deploy.rb index 6d4f681af8..6f4ce74e2e 100644 --- a/chef/lib/chef/resource/deploy.rb +++ b/chef/lib/chef/resource/deploy.rb @@ -245,9 +245,14 @@ class Chef end def scm_provider(arg=nil) + klass = if arg.kind_of?(String) || arg.kind_of?(Symbol) + lookup_provider_constant(arg) + else + arg + end set_or_return( :scm_provider, - arg, + klass, :kind_of => [ Class ] ) end diff --git a/chef/spec/unit/resource/deploy_spec.rb b/chef/spec/unit/resource/deploy_spec.rb index 448531df04..28926a61d1 100644 --- a/chef/spec/unit/resource/deploy_spec.rb +++ b/chef/spec/unit/resource/deploy_spec.rb @@ -92,6 +92,18 @@ describe Chef::Resource::Deploy do @resource.scm_provider.should eql(Chef::Provider::Subversion) end + it "allows scm providers to be set via symbol" do + @resource.scm_provider.should == Chef::Provider::Git + @resource.scm_provider :subversion + @resource.scm_provider.should == Chef::Provider::Subversion + end + + it "allows scm providers to be set via string" do + @resource.scm_provider.should == Chef::Provider::Git + @resource.scm_provider "subversion" + @resource.scm_provider.should == Chef::Provider::Subversion + end + it "has a boolean attribute for svn_force_export defaulting to false" do @resource.svn_force_export.should be_false @resource.svn_force_export true @@ -201,5 +213,5 @@ describe Chef::Resource::Deploy do @resource.provider "revision" @resource.provider.should == Chef::Provider::Deploy::Revision end - + end |