diff options
author | Mark Chappell <mchappel@redhat.com> | 2014-05-23 08:44:50 +0200 |
---|---|---|
committer | Mark Chappell <mchappel@redhat.com> | 2014-09-22 19:49:50 +0200 |
commit | 23bc7d51bd3aca0c3a3391bb628a797dc768422a (patch) | |
tree | fa6da432f62e98d90a8395c8ff0d74ba2ce4bb94 /lib/puppet/parser/functions | |
parent | e2d7f3bb89a91d3aff6f9810d69bd84bc82ffb29 (diff) | |
download | puppet-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/parser/functions')
-rw-r--r-- | lib/puppet/parser/functions/bool2num.rb | 24 | ||||
-rw-r--r-- | lib/puppet/parser/functions/zip.rb | 26 |
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 |