Puppet Function: sprintf_hash

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

Overview

sprintf_hash(String $format, Hash $arguments)Any

Uses sprintf with named references.

The first parameter is format string describing how the rest of the parameters in the hash should be formatted. See the documentation for the ‘Kernel::sprintf` function in Ruby for all the details.

In the given argument hash with parameters, all keys are converted to symbols so they work with the ‘sprintf` function.

Examples:

Format a string and number

$output = sprintf_hash('String: %<foo>s / number converted to binary: %<number>b',
                       { 'foo' => 'a string', 'number' => 5 })
# $output = 'String: a string / number converted to binary: 101'

Parameters:

  • format (String)

    The format to use.

  • arguments (Hash)

    Hash with parameters.

Returns:

  • (Any)

    The formatted string.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/puppet/functions/sprintf_hash.rb', line 15

Puppet::Functions.create_function(:sprintf_hash) do
  # @param format The format to use.
  # @param arguments Hash with parameters.
  # @return The formatted string.
  dispatch :sprintf_hash do
    param 'String', :format
    param 'Hash', :arguments
    # Disabled for now. This gives issues on puppet 4.7.1.
    # return_type 'String'
  end

  def sprintf_hash(format, arguments)
    Kernel.sprintf(format, Hash[arguments.map { |(k, v)| [k.to_sym, v] }])
  end
end