summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Turnbull <james@lovedthanlost.net>2011-04-04 04:50:38 +1000
committerJames Turnbull <james@lovedthanlost.net>2011-04-04 04:50:38 +1000
commitd2bacd308ea214151f5c1f43ec62aad8075da41b (patch)
tree74781165f5f932a36ad50b4b93e3d0c833f51a33
parent9d17809e5b240aa80d2c30f4d9625d4812802b8f (diff)
downloadpuppet-d2bacd308ea214151f5c1f43ec62aad8075da41b.tar.gz
puppet-d2bacd308ea214151f5c1f43ec62aad8075da41b.tar.xz
puppet-d2bacd308ea214151f5c1f43ec62aad8075da41b.zip
Fixed #3127 - Fixed gem selection regex
Previously if the gem json_pure was installed and you requested the gem json then the regex matched too soon and falshly indicated that the json gem was already installed. Also updated to add the --no-ri and no-rdoc options and fix tests.
-rwxr-xr-xlib/puppet/provider/package/gem.rb5
-rw-r--r--spec/unit/provider/package/gem_spec.rb12
2 files changed, 14 insertions, 3 deletions
diff --git a/lib/puppet/provider/package/gem.rb b/lib/puppet/provider/package/gem.rb
index 19414cec4..64544db4e 100755
--- a/lib/puppet/provider/package/gem.rb
+++ b/lib/puppet/provider/package/gem.rb
@@ -1,5 +1,6 @@
require 'puppet/provider/package'
require 'uri'
+require 'pp'
# Ruby gems support.
Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package do
@@ -22,7 +23,7 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package d
end
if name = hash[:justme]
- command << name
+ command << name + "$"
end
begin
@@ -94,7 +95,7 @@ Puppet::Type.type(:package).provide :gem, :parent => Puppet::Provider::Package d
command << "--source" << "#{source}" << resource[:name]
end
else
- command << resource[:name]
+ command << "--no-rdoc" << "--no-ri" << resource[:name]
end
output = execute(command)
diff --git a/spec/unit/provider/package/gem_spec.rb b/spec/unit/provider/package/gem_spec.rb
index 063e1474b..32c067a60 100644
--- a/spec/unit/provider/package/gem_spec.rb
+++ b/spec/unit/provider/package/gem_spec.rb
@@ -42,8 +42,18 @@ describe provider_class do
@provider.install
end
+ it "should specify that documentation should not be included" do
+ @provider.expects(:execute).with { |args| args[3] == "--no-rdoc" }.returns ""
+ @provider.install
+ end
+
+ it "should specify that RI should not be included" do
+ @provider.expects(:execute).with { |args| args[4] == "--no-ri" }.returns ""
+ @provider.install
+ end
+
it "should specify the package name" do
- @provider.expects(:execute).with { |args| args[3] == "myresource" }.returns ""
+ @provider.expects(:execute).with { |args| args[5] == "myresource" }.returns ""
@provider.install
end