#
module Puppet::Parser::Functions
newfunction(:member, :type => :rvalue, :doc => <<-DOC
- This function determines if a variable is a member of an array.
- The variable can be a string, fixnum, or array.
-
- *Examples:*
-
- member(['a','b'], 'b')
-
- Would return: true
-
- member(['a', 'b', 'c'], ['a', 'b'])
-
- would return: true
-
- member(['a','b'], 'c')
+ @summary
+ This function determines if a variable is a member of an array.
- Would return: false
-
- member(['a', 'b', 'c'], ['d', 'b'])
-
- would return: false
-
- Note: Since Puppet 4.0.0 the same can be performed in the Puppet language. For single values
- the operator `in` can be used:
-
- 'a' in ['a', 'b'] # true
-
- And for arrays by using operator `-` to compute a diff:
-
- ['d', 'b'] - ['a', 'b', 'c'] == [] # false because 'd' is not subtracted
- ['a', 'b'] - ['a', 'b', 'c'] == [] # true because both 'a' and 'b' are subtracted
+ The variable can be a string, fixnum, or array.
- Also note that since Puppet 5.2.0 the general form of testing content of an array or hash is to use the built-in
- `any` and `all` functions.
+ > **Note**: This function does not support nested arrays. If the first argument contains
+ nested arrays, it will not recurse through them.
+
+ @example **Usage**
+ member(['a','b'], 'b') # Returns: true
+ member(['a', 'b', 'c'], ['a', 'b']) # Returns: true
+ member(['a','b'], 'c') # Returns: false
+ member(['a', 'b', 'c'], ['d', 'b']) # Returns: false
+
+ > *Note:*
+ Since Puppet 4.0.0 the same can be performed in the Puppet language.
+ For single values the operator `in` can be used:
+ `'a' in ['a', 'b'] # true`
+ For arrays by using operator `-` to compute a diff:
+ `['d', 'b'] - ['a', 'b', 'c'] == [] # false because 'd' is not subtracted`
+ `['a', 'b'] - ['a', 'b', 'c'] == [] # true because both 'a' and 'b' are subtracted`
+
+ @return
+ Returns whether the given value was a member of the array
+
+ > **Note** that since Puppet 5.2.0, the general form to test the content of an array or
+ hash is to use the built-in [`any`](https://puppet.com/docs/puppet/latest/function.html#any)
+ and [`all`](https://puppet.com/docs/puppet/latest/function.html#all) functions.
DOC
) do |arguments|