summaryrefslogtreecommitdiff
path: root/lib/puppet/parser/functions/is_string.rb
diff options
context:
space:
mode:
authorDavid Schmitt <david.schmitt@puppet.com>2016-10-12 10:04:54 +0100
committerDavid Schmitt <david.schmitt@puppet.com>2016-10-12 10:40:54 +0100
commitb92fad2b7667df836f8ca4eb92d8c8be84bd0538 (patch)
tree912de02b06abd718f737b1a891d2a38ecc57f04c /lib/puppet/parser/functions/is_string.rb
parentf3978b87a498959b271c487944b1ce3903c359d4 (diff)
(MODULES-3961) emit more deprecation warnings
This now emits one deprecation warning for each function used (but not for each call-site). Prior to this, only a single deprecation warning would have been triggered, potentially misleading users. Additionally this adds v4 deprecation stubs for the functions that were missed.
Diffstat (limited to 'lib/puppet/parser/functions/is_string.rb')
-rw-r--r--lib/puppet/parser/functions/is_string.rb5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/puppet/parser/functions/is_string.rb b/lib/puppet/parser/functions/is_string.rb
index 144cf51..31ee91e 100644
--- a/lib/puppet/parser/functions/is_string.rb
+++ b/lib/puppet/parser/functions/is_string.rb
@@ -8,14 +8,15 @@ Returns true if the variable passed to this function is a string.
EOS
) do |arguments|
- function_deprecation([:puppet_3_type_check, 'This method is deprecated, please use the stdlib validate_legacy function, with Stdlib::Compat::String. There is further documentation for validate_legacy function in the README.'])
+ function_deprecation([:is_string, 'This method is deprecated, please use the stdlib validate_legacy function, with Stdlib::Compat::String. There is further documentation for validate_legacy function in the README.'])
raise(Puppet::ParseError, "is_string(): Wrong number of arguments " +
"given (#{arguments.size} for 1)") if arguments.size < 1
type = arguments[0]
- result = type.is_a?(String)
+ # when called through the v4 API shim, undef gets translated to nil
+ result = type.is_a?(String) || type.nil?
if result and (type == type.to_f.to_s or type == type.to_i.to_s) then
return false