summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Barber <ken@bob.sh>2011-07-28 21:03:33 +0100
committerKen Barber <ken@bob.sh>2011-07-28 21:03:33 +0100
commit313df566bf5cfcbef73fc8182ccb07ddf2f13feb (patch)
tree787e71d3b3f844add2c691f669bfa126ccff49a3
parent635ed82e5cae38b0ba82098c340cbeed70d483c3 (diff)
downloadpuppet-stdlib-313df566bf5cfcbef73fc8182ccb07ddf2f13feb.tar.gz
puppet-stdlib-313df566bf5cfcbef73fc8182ccb07ddf2f13feb.tar.bz2
(#2) unstub is_numeric function.
-rw-r--r--lib/puppet/parser/functions/is_numeric.rb8
-rw-r--r--spec/unit/parser/functions/is_numeric_spec.rb17
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