summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias Meyer <meyer@paperplanes.de>2010-01-16 14:11:20 +0100
committerMathias Meyer <meyer@paperplanes.de>2010-01-16 14:11:20 +0100
commit12a0728fc991441f21b8fada3b9ec71c315c33d7 (patch)
tree0612693bfda1e9ef42e4c50e8b5b722f60f4a291
parent73d3bcddea38209905110a7927449cf9a117857c (diff)
downloadchef-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.rb7
-rw-r--r--chef/spec/unit/resource/deploy_spec.rb14
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