Puppet Function: multiregsubst

Defined in:
lib/puppet/functions/multiregsubst.rb
Function type:
Ruby 4.x API

Overview

multiregsubst(String $target, Hash[Regexp, String] $substmap)String

Performs a series of substitutions on the same target string

Examples:

Two patterns

$pattern_map = {/_sid_/ => 'scp', /_SID_/ => 'SCP'}
$target = '/db2/_SID_/db2_sid_'
$result = multiregsubst($target, $pattern_map)
# The output string will be equivalent to the following
# $result = '/db2/SCP/db2scp'

Parameters:

  • target (String)

    The string to be substituted

  • substmap (Hash[Regexp, String])

    Hash mapping regexp to target value

Returns:

  • (String)

    Returns target after all substitutions



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/puppet/functions/multiregsubst.rb', line 10

Puppet::Functions.create_function(:multiregsubst) do
  # Iteratively substitutes each pattern/value pairing in target.
  # @param target The string to be substituted
  # @param substmap Hash mapping regexp to target value
  # @return [String] Returns target after all substitutions
  dispatch :multiregsubst do
    param 'String', :target
    param 'Hash[Regexp, String]', :substmap
    return_type 'String'
  end

  def multiregsubst(target, substmap)
    result = target
    substmap.each do |pattern, value|
      result = result.gsub(pattern, value)
    end
    # rubocop:disable Style/RedundantReturn:
    return result
    # rubocop:enable Style/RedundantReturn:
  end
end