]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
Re-use existing str2bool code rather than doing a copy and paste
authorMark Chappell <mchappel@redhat.com>
Fri, 23 May 2014 06:44:50 +0000 (08:44 +0200)
committerMark Chappell <mchappel@redhat.com>
Mon, 22 Sep 2014 17:49:50 +0000 (19:49 +0200)
lib/puppet/parser/functions/bool2num.rb
lib/puppet/parser/functions/zip.rb

index b32a4e87d799eceff1c57355b2d6c9e4eb327b09..6ad6cf4e8c3e5183e6551cec78304c6e96917cd4 100644 (file)
@@ -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
index 00266a4c589296327b9403a7d01b00fac2a847bb..3074f282b94a04156fadb6623c410052c0685fd4 100644 (file)
@@ -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