Puppet Function: count

Defined in:
puppet/modules/stdlib/lib/puppet/parser/functions/count.rb
Function type:
Ruby 3.x API

Overview

count()Any

Takes an array as first argument and an optional second argument. Count the number of elements in array that matches second argument. If called with only an array it counts the number of elements that are not nil/undef.

Returns:

  • (Any)


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'puppet/modules/stdlib/lib/puppet/parser/functions/count.rb', line 2

newfunction(:count, :type => :rvalue, :arity => -2, :doc => <<-EOS
Takes an array as first argument and an optional second argument.
Count the number of elements in array that matches second argument.
If called with only an array it counts the number of elements that are not nil/undef.
  EOS
) do |args|

  if (args.size > 2) then
    raise(ArgumentError, "count(): Wrong number of arguments "+
      "given #{args.size} for 1 or 2.")
  end

  collection, item = args

  if item then
    collection.count item
  else
    collection.count { |obj| obj != nil && obj != :undef && obj != '' }
  end
end