diff options
author | Ken Barber <ken@bob.sh> | 2011-07-28 21:03:33 +0100 |
---|---|---|
committer | Ken Barber <ken@bob.sh> | 2011-07-28 21:03:33 +0100 |
commit | 313df566bf5cfcbef73fc8182ccb07ddf2f13feb (patch) | |
tree | 787e71d3b3f844add2c691f669bfa126ccff49a3 | |
parent | 635ed82e5cae38b0ba82098c340cbeed70d483c3 (diff) | |
download | puppet-stdlib-313df566bf5cfcbef73fc8182ccb07ddf2f13feb.tar.gz puppet-stdlib-313df566bf5cfcbef73fc8182ccb07ddf2f13feb.tar.bz2 |
(#2) unstub is_numeric function.
-rw-r--r-- | lib/puppet/parser/functions/is_numeric.rb | 8 | ||||
-rw-r--r-- | spec/unit/parser/functions/is_numeric_spec.rb | 17 |
2 files changed, 24 insertions, 1 deletions
diff --git a/lib/puppet/parser/functions/is_numeric.rb b/lib/puppet/parser/functions/is_numeric.rb index 96e8674..c2c0fb5 100644 --- a/lib/puppet/parser/functions/is_numeric.rb +++ b/lib/puppet/parser/functions/is_numeric.rb @@ -12,6 +12,14 @@ module Puppet::Parser::Functions "given #{arguments.size} for 1") end + value = arguments[0] + + if value == value.to_f.to_s or value == value.to_i.to_s then + return true + else + return false + end + end end diff --git a/spec/unit/parser/functions/is_numeric_spec.rb b/spec/unit/parser/functions/is_numeric_spec.rb index 3a49f5d..2191b7b 100644 --- a/spec/unit/parser/functions/is_numeric_spec.rb +++ b/spec/unit/parser/functions/is_numeric_spec.rb @@ -14,8 +14,23 @@ describe "the is_numeric function" do Puppet::Parser::Functions.function("is_numeric").should == "function_is_numeric" end - it "should raise a ParseError if there is less than 1 arguments" do + it "should raise a ParseError if there is less than 1 argument" do lambda { @scope.function_is_numeric([]) }.should( raise_error(Puppet::ParseError)) end + it "should return true if an integer" do + result = @scope.function_is_numeric(["3"]) + result.should(eq(true)) + end + + it "should return true if a float" do + result = @scope.function_is_numeric(["3.2"]) + result.should(eq(true)) + end + + it "should return false if a string" do + result = @scope.function_is_numeric(["asdf"]) + result.should(eq(false)) + end + end |