summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/parser/functions/bool2str.rb13
-rwxr-xr-xspec/unit/puppet/parser/functions/bool2str_spec.rb12
2 files changed, 17 insertions, 8 deletions
diff --git a/lib/puppet/parser/functions/bool2str.rb b/lib/puppet/parser/functions/bool2str.rb
index a97d356..fcd3791 100644
--- a/lib/puppet/parser/functions/bool2str.rb
+++ b/lib/puppet/parser/functions/bool2str.rb
@@ -5,7 +5,7 @@
module Puppet::Parser::Functions
newfunction(:bool2str, :type => :rvalue, :doc => <<-EOS
Converts a boolean to a string.
- Requires a single boolean or string as an input.
+ Requires a single boolean as an input.
EOS
) do |arguments|
@@ -15,15 +15,12 @@ module Puppet::Parser::Functions
value = arguments[0]
klass = value.class
- # We can have either true or false, or string which resembles boolean ...
- unless [FalseClass, TrueClass, String].include?(klass)
- raise(Puppet::ParseError, 'bool2str(): Requires either ' +
- 'boolean or string to work with')
+ # We can have either true or false, and nothing else
+ unless [FalseClass, TrueClass].include?(klass)
+ raise(Puppet::ParseError, 'bool2str(): Requires a boolean to work with')
end
- result = value.is_a?(String) ? value : value.to_s
-
- return result
+ return value.to_s
end
end
diff --git a/spec/unit/puppet/parser/functions/bool2str_spec.rb b/spec/unit/puppet/parser/functions/bool2str_spec.rb
index c73f7df..bed7e68 100755
--- a/spec/unit/puppet/parser/functions/bool2str_spec.rb
+++ b/spec/unit/puppet/parser/functions/bool2str_spec.rb
@@ -31,4 +31,16 @@ describe "the bool2str function" do
result = scope.function_bool2str([false])
result.class.should(eq(String))
end
+
+ it "should not accept a string" do
+ lambda { scope.function_bool2str(["false"]) }.should( raise_error(Puppet::ParseError))
+ end
+
+ it "should not accept a nil value" do
+ lambda { scope.function_bool2str([nil]) }.should( raise_error(Puppet::ParseError))
+ end
+
+ it "should not accept an undef" do
+ lambda { scope.function_bool2str([:undef]) }.should( raise_error(Puppet::ParseError))
+ end
end