#
# hash.rb
#
-
module Puppet::Parser::Functions
- newfunction(:hash, :type => :rvalue, :doc => <<-EOS
-This function converts an array into a hash.
-
-*Examples:*
-
- hash(['a',1,'b',2,'c',3])
-
-Would return: {'a'=>1,'b'=>2,'c'=>3}
- EOS
- ) do |arguments|
-
- raise(Puppet::ParseError, "hash(): Wrong number of arguments " +
- "given (#{arguments.size} for 1)") if arguments.size < 1
+ newfunction(:hash, :type => :rvalue, :doc => <<-DOC
+ @summary
+ **Deprecated:** This function converts an array into a hash.
+
+ @return
+ the converted array as a hash
+ @example Example Usage:
+ hash(['a',1,'b',2,'c',3]) # Returns: {'a'=>1,'b'=>2,'c'=>3}
+
+ > **Note:** This function has been replaced with the built-in ability to create a new value of almost any
+ data type - see the built-in [`Hash.new`](https://puppet.com/docs/puppet/latest/function.html#conversion-to-hash-and-struct) function
+ in Puppet.
+ This example shows the equivalent expression in the Puppet language:
+ ```
+ Hash(['a',1,'b',2,'c',3])
+ Hash([['a',1],['b',2],['c',3]])
+ ```
+ DOC
+ ) do |arguments|
+
+ raise(Puppet::ParseError, "hash(): Wrong number of arguments given (#{arguments.size} for 1)") if arguments.empty?
array = arguments[0]
# This is to make it compatible with older version of Ruby ...
array = array.flatten
result = Hash[*array]
- rescue Exception
- raise(Puppet::ParseError, 'hash(): Unable to compute ' +
- 'hash from array given')
+ rescue StandardError
+ raise(Puppet::ParseError, 'hash(): Unable to compute hash from array given')
end
return result