5e8d08df8527b5d350e630c85acf963dc79adf43
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / lib / puppet / functions / is_array.rb
1 # @summary
2 #   Wrapper that calls the Puppet 3.x funtion of the same name.
3 Puppet::Functions.create_function(:is_array) do
4   # @param scope
5   #   The main value that will be passed to the wrapped method
6   #
7   # @param args
8   #   Any additional values that are to be passed to the wrapped method
9   #
10   # @return [Boolea]
11   #   A boolean value returned from the called 3.x function.
12   dispatch :deprecation_gen do
13     param 'Any', :scope
14     repeated_param 'Any', :args
15   end
16   # Workaround PUP-4438 (fixed: https://github.com/puppetlabs/puppet/commit/e01c4dc924cd963ff6630008a5200fc6a2023b08#diff
17   #   -c937cc584953271bb3d3b3c2cb141790R221) to support puppet < 4.1.0 and puppet < 3.8.1.
18   def call(scope, *args)
19     manipulated_args = [scope] + args
20     self.class.dispatcher.dispatch(self, scope, manipulated_args)
21   end
22
23   def deprecation_gen(scope, *args)
24     call_function('deprecation', 'is_array', 'This method is deprecated, please use match expressions with Stdlib::Compat::Array instead. They are described at https://docs.puppet.com/puppet/latest/reference/lang_data_type.html#match-expressions.')
25     scope.send('function_is_array', args)
26   end
27 end