Puppet Function: squeeze

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

Summary

Returns a new string where runs of the same character that occur in this set are replaced by a single character.

Overview

squeeze()Any

Returns:

  • (Any)

    a new string where runs of the same character that occur in this set are replaced by a single character.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'vendor_modules/stdlib/lib/puppet/parser/functions/squeeze.rb', line 7

newfunction(:squeeze, type: :rvalue, doc: <<-DOC
  @summary
    Returns a new string where runs of the same character that occur in this set are replaced by a single character.

  @return
    a new string where runs of the same character that occur in this set are replaced by a single character.
DOC
) do |arguments|
  if (arguments.size != 2) && (arguments.size != 1)
    raise(Puppet::ParseError, "squeeze(): Wrong number of arguments given #{arguments.size} for 2 or 1")
  end

  item = arguments[0]
  squeezeval = arguments[1]

  if item.is_a?(Array)
    if squeezeval
      item.map { |i| i.squeeze(squeezeval) }
    else
      item.map { |i| i.squeeze }
    end
  elsif squeezeval
    item.squeeze(squeezeval)
  else
    item.squeeze
  end
end