From 735db82bef56bf939c971ab76a66647269d6ae35 Mon Sep 17 00:00:00 2001 From: Tomas Doran Date: Tue, 19 Nov 2013 18:38:12 +0000 Subject: Allow a single argument, rather than an array --- lib/puppet/parser/functions/ensure_packages.rb | 3 +-- spec/functions/ensure_packages_spec.rb | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/puppet/parser/functions/ensure_packages.rb b/lib/puppet/parser/functions/ensure_packages.rb index 450ea02..371d63a 100644 --- a/lib/puppet/parser/functions/ensure_packages.rb +++ b/lib/puppet/parser/functions/ensure_packages.rb @@ -11,8 +11,7 @@ Takes a list of packages and only installs them if they don't already exist. raise(Puppet::ParseError, "ensure_packages(): Wrong number of arguments " + "given (#{arguments.size} for 1)") if arguments.size != 1 - raise(Puppet::ParseError, "ensure_packages(): Requires array " + - "given (#{arguments[0].class})") if !arguments[0].kind_of?(Array) + arguments[0] = [ arguments[0] ] unless arguments[0].kind_of?(Array) Puppet::Parser::Functions.function(:ensure_resource) arguments[0].each { |package_name| diff --git a/spec/functions/ensure_packages_spec.rb b/spec/functions/ensure_packages_spec.rb index 6fd56d5..f6272af 100644 --- a/spec/functions/ensure_packages_spec.rb +++ b/spec/functions/ensure_packages_spec.rb @@ -13,8 +13,9 @@ describe 'ensure_packages' do it 'requires an array' do lambda { scope.function_ensure_packages([['foo']]) }.should_not raise_error end - it 'fails when given a string' do - should run.with_params('foo').and_raise_error(Puppet::ParseError) + + it 'accepts a single package name as a string' do + scope.function_ensure_packages(['foo']) end end -- cgit v1.2.3