]> gitweb.fluxo.info Git - puppet-stdlib.git/commitdiff
Cleanup per adrianthebo suggestions
authorSteve Huff <shuff@vecna.org>
Mon, 1 Apr 2013 15:44:09 +0000 (11:44 -0400)
committerSteve Huff <shuff@vecna.org>
Mon, 1 Apr 2013 15:44:09 +0000 (11:44 -0400)
* 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
spec/unit/puppet/parser/functions/num2bool_spec.rb

index cf98f805c14c9ba600e144ee389a9a78ecabee2a..af0e6ed7895109392812d14f13725a6f27fc2e67 100644 (file)
@@ -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
 
index 038881f041a9b0daba2c86c5f59b90ff17206b90..b56196d3c6bc7ed60d1d046c5e2684122c84a6b7 100644 (file)
@@ -25,18 +25,13 @@ describe "the num2bool function" do
     result.should(be_true)
   end
 
-  it "should return true if passed number 1" do
-    result = scope.function_num2bool([1])
-    result.should(be_true)
-  end
-
-  it "should return true if passed array with string 1" do
-    result = scope.function_num2bool([["1"]])
+  it "should return true if passed string 1.5" do
+    result = scope.function_num2bool(["1.5"])
     result.should(be_true)
   end
 
-  it "should return true if passed array with number 1" do
-    result = scope.function_num2bool([[1]])
+  it "should return true if passed number 1" do
+    result = scope.function_num2bool([1])
     result.should(be_true)
   end
 
@@ -50,34 +45,23 @@ describe "the num2bool function" do
     result.should(be_false)
   end
 
-  it "should return false if passed array with string 0" do
-    result = scope.function_num2bool([["0"]])
-    result.should(be_false)
-  end
-
-  it "should return false if passed array with number 0" do
-    result = scope.function_num2bool([[0]])
-    result.should(be_false)
-  end
-
   it "should return false if passed string -1" do
     result = scope.function_num2bool(["-1"])
     result.should(be_false)
   end
 
-  it "should return false if passed number -1" do
-    result = scope.function_num2bool([-1])
+  it "should return false if passed string -1.5" do
+    result = scope.function_num2bool(["-1.5"])
     result.should(be_false)
   end
 
-  it "should return false if passed array with string -1" do
-    result = scope.function_num2bool([["-1"]])
+  it "should return false if passed number -1" do
+    result = scope.function_num2bool([-1])
     result.should(be_false)
   end
 
-  it "should return false if passed array with number -1" do
-    result = scope.function_num2bool([[-1]])
+  it "should return false if passed float -1.5" do
+    result = scope.function_num2bool([-1.5])
     result.should(be_false)
   end
-
 end