Update stdlib and concat to 6.1.0 both
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / parser / functions / is_string.rb
index f5bef04..7410d32 100644 (file)
@@ -1,21 +1,30 @@
 #
 # is_string.rb
 #
-
 module Puppet::Parser::Functions
-  newfunction(:is_string, :type => :rvalue, :doc => <<-EOS
-Returns true if the variable passed to this function is a string.
-    EOS
-  ) do |arguments|
+  newfunction(:is_string, :type => :rvalue, :doc => <<-DOC
+    @summary
+      **Deprecated:** Returns true if the variable passed to this function is a string.
+
+    @return [Boolean]
+      Returns `true` or `false`
+
+    > **Note:* **Deprecated** Will be removed in a future version of stdlib. See
+    [`validate_legacy`](#validate_legacy).
+    DOC
+             ) do |arguments|
+
+    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
+    raise(Puppet::ParseError, "is_string(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.empty?
 
     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
+    if result && (type == type.to_f.to_s || type == type.to_i.to_s)
       return false
     end