summaryrefslogtreecommitdiff
path: root/lib/puppet
diff options
context:
space:
mode:
authorMark Chappell <mchappel@redhat.com>2014-05-23 08:44:50 +0200
committerMark Chappell <mchappel@redhat.com>2014-09-22 19:49:50 +0200
commit23bc7d51bd3aca0c3a3391bb628a797dc768422a (patch)
treefa6da432f62e98d90a8395c8ff0d74ba2ce4bb94 /lib/puppet
parente2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29 (diff)
downloadpuppet-stdlib-23bc7d51bd3aca0c3a3391bb628a797dc768422a.tar.gz
puppet-stdlib-23bc7d51bd3aca0c3a3391bb628a797dc768422a.tar.bz2
Re-use existing str2bool code rather than doing a copy and paste
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/parser/functions/bool2num.rb24
-rw-r--r--lib/puppet/parser/functions/zip.rb26
2 files changed, 2 insertions, 48 deletions
diff --git a/lib/puppet/parser/functions/bool2num.rb b/lib/puppet/parser/functions/bool2num.rb
index b32a4e8..6ad6cf4 100644
--- a/lib/puppet/parser/functions/bool2num.rb
+++ b/lib/puppet/parser/functions/bool2num.rb
@@ -14,29 +14,7 @@ module Puppet::Parser::Functions
raise(Puppet::ParseError, "bool2num(): Wrong number of arguments " +
"given (#{arguments.size} for 1)") if arguments.size < 1
- value = arguments[0]
-
- # We can have either true or false, or string which resembles boolean ...
- unless value.is_a?(String) || value.is_a?(FalseClass) || value.is_a?(TrueClass)
- raise(Puppet::ParseError, 'bool2num(): Requires either ' +
- 'boolean or string to work with')
- end
-
- if value.is_a?(String)
- # We consider all the yes, no, y, n and so on too ...
- value = case value
- #
- # This is how undef looks like in Puppet ...
- # We yield 0 (or false if you wish) in this case.
- #
- when /^$/, '' then false # Empty string will be false ...
- when /^(1|t|y|true|yes)$/ then true
- when /^(0|f|n|false|no)$/ then false
- when /^(undef|undefined)$/ then false # This is not likely to happen ...
- else
- raise(Puppet::ParseError, 'bool2num(): Unknown type of boolean given')
- end
- end
+ value = function_str2bool([arguments[0]])
# We have real boolean values as well ...
result = value ? 1 : 0
diff --git a/lib/puppet/parser/functions/zip.rb b/lib/puppet/parser/functions/zip.rb
index 00266a4..3074f28 100644
--- a/lib/puppet/parser/functions/zip.rb
+++ b/lib/puppet/parser/functions/zip.rb
@@ -27,31 +27,7 @@ Would result in:
raise(Puppet::ParseError, 'zip(): Requires array to work with')
end
- flatten = arguments[2] if arguments[2]
-
- if flatten
- # We can have either true or false, or string which resembles boolean ...
- unless flatten.is_a?(String) || flatten.is_a?(FalseClass) || flatten.is_a?(TrueClass)
- raise(Puppet::ParseError, 'zip(): Requires either ' +
- 'boolean or string to work with')
- end
-
- if flatten.is_a?(String)
- # We consider all the yes, no, y, n and so on too ...
- flatten = case flatten
- #
- # This is how undef looks like in Puppet ...
- # We yield false in this case.
- #
- when /^$/, '' then false # Empty string will be false ...
- when /^(1|t|y|true|yes)$/ then true
- when /^(0|f|n|false|no)$/ then false
- when /^(undef|undefined)$/ then false # This is not likely to happen ...
- else
- raise(Puppet::ParseError, 'zip(): Unknown type of boolean given')
- end
- end
- end
+ flatten = function_str2bool([arguments[2]]) if arguments[2]
result = a.zip(b)
result = flatten ? result.flatten : result