summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan McKern <ryan.mckern@puppetlabs.com>2014-05-15 15:01:14 -0700
committerRyan McKern <ryan.mckern@puppetlabs.com>2014-05-15 15:01:14 -0700
commit93c4151edfedb28a0cafa60011c57eb6d76ca6be (patch)
tree5321e18a8badd91c72eb7f6a3b20d62cfe293e3f
parent0761fcf0433b1c73ff9925d1b8fa20a618f28875 (diff)
(MODULES-905) Narrow the confinement in bool2str
Previously, bool2str() accepted a broad array of boolean values and bare strings, without any attempt to validate that the strings in any way resembled "true" or "false" (or any of the other values bool2num() accepts). This commit narrows the input confinement to TrueClass and FalseClass, which means that bool2str() will only interpolate strict boolean values now.
-rw-r--r--lib/puppet/parser/functions/bool2str.rb13
1 files changed, 5 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