From c372f177708df4c844337e9901646b7b84b86cd8 Mon Sep 17 00:00:00 2001
From: Steve Huff <shuff@vecna.org>
Date: Mon, 1 Apr 2013 11:44:09 -0400
Subject: Cleanup per adrianthebo suggestions

* use Float() to process string arguments
* get rid of doubly nested arrays
* removing needless ternary operator
* improving error message handling
---
 lib/puppet/parser/functions/num2bool.rb | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

(limited to 'lib/puppet/parser/functions')

diff --git a/lib/puppet/parser/functions/num2bool.rb b/lib/puppet/parser/functions/num2bool.rb
index cf98f80..af0e6ed 100644
--- a/lib/puppet/parser/functions/num2bool.rb
+++ b/lib/puppet/parser/functions/num2bool.rb
@@ -19,28 +19,24 @@ become true.
     when Numeric
       # Yay, it's a number
     when String
-      # Deal with strings later
+      begin
+        number = Float(number)
+      rescue ArgumentError => ex
+        raise(Puppet::ParseError, "num2bool(): '#{number}' does not look like a number: #{ex.message}")
+      end
     else
       begin
         number = number.to_s
-      rescue NoMethodError
-        raise(Puppet::ParseError, 'num2bool(): Unable to parse argument: ' + $!)
-      end
-    end
-
-    case number
-    when String
-      # Only accept strings that look somewhat like numbers
-      unless number =~ /^-?\d+/
-        raise(Puppet::ParseError, "num2bool(): '#{number}' does not look like a number")
+      rescue NoMethodError => ex
+        raise(Puppet::ParseError, "num2bool(): Unable to parse argument: #{ex.message}")
       end
     end
 
-    # Truncate floats
+    # Truncate Floats
     number = number.to_i
 
     # Return true for any positive number and false otherwise
-    return number > 0 ? true : false
+    return number > 0
   end
 end
 
-- 
cgit v1.2.3