Sha256: 9db08e07869a874efa3905de86ee15aed5161f8650095734bcc7d2f07a3d9391

Contents?: true

Size: 1.29 KB

Versions: 32

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

# Scans a string and returns an array of one or more converted values based on the given format string.
# See the documentation of Ruby's String#scanf method for details about the supported formats (which
# are similar but not identical to the formats used in Puppet's `sprintf` function.)
#
# This function takes two mandatory arguments: the first is the string to convert, and the second is
# the format string. The result of the scan is an array, with each successfully scanned and transformed value.
# The scanning stops if a scan is unsuccessful, and the scanned result up to that point is returned. If there
# was no successful scan, the result is an empty array.
#
#    "42".scanf("%i")
#
# You can also optionally pass a lambda to scanf, to do additional validation or processing.
#
#
#     "42".scanf("%i") |$x| {
#       unless $x[0] =~ Integer {
#         fail "Expected a well formed integer value, got '$x[0]'"
#       }
#       $x[0]
#     }
#
#
#
#
#
# @since 4.0.0
#
Puppet::Functions.create_function(:scanf) do
  require 'scanf'

  dispatch :scanf do
    param 'String', :data
    param 'String', :format
    optional_block_param
  end

  def scanf(data, format)
    result = data.scanf(format)
    if block_given?
      result = yield(result)
    end
    result
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
puppet-8.10.0 lib/puppet/functions/scanf.rb
puppet-8.10.0-x86-mingw32 lib/puppet/functions/scanf.rb
puppet-8.10.0-x64-mingw32 lib/puppet/functions/scanf.rb
puppet-8.10.0-universal-darwin lib/puppet/functions/scanf.rb
puppet-8.9.0 lib/puppet/functions/scanf.rb
puppet-8.9.0-x86-mingw32 lib/puppet/functions/scanf.rb
puppet-8.9.0-x64-mingw32 lib/puppet/functions/scanf.rb
puppet-8.9.0-universal-darwin lib/puppet/functions/scanf.rb
puppet-8.8.1 lib/puppet/functions/scanf.rb
puppet-8.8.1-x86-mingw32 lib/puppet/functions/scanf.rb
puppet-8.8.1-x64-mingw32 lib/puppet/functions/scanf.rb
puppet-8.8.1-universal-darwin lib/puppet/functions/scanf.rb
puppet-8.7.0 lib/puppet/functions/scanf.rb
puppet-8.7.0-x86-mingw32 lib/puppet/functions/scanf.rb
puppet-8.7.0-x64-mingw32 lib/puppet/functions/scanf.rb
puppet-8.7.0-universal-darwin lib/puppet/functions/scanf.rb
puppet-8.6.0 lib/puppet/functions/scanf.rb
puppet-8.6.0-x86-mingw32 lib/puppet/functions/scanf.rb
puppet-8.6.0-x64-mingw32 lib/puppet/functions/scanf.rb
puppet-8.6.0-universal-darwin lib/puppet/functions/scanf.rb