Sha256: 6ebebd4c9dc8a909a2d0015127beca0c9b2c9d59abc23fddceae3234c0bee93d

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

Puppet::Parser::Functions::newfunction(
  :scanf,
  :type => :rvalue,
  :arity => 2,
  :doc => <<-DOC
Scans a string and returns an array of one or more converted values as directed by a given format string.args
See the documenation 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
the format String. A parameterized block may optionally be given, which is called with the result
that is produced by scanf if no block is present, the result of the block is then returned by
the function.

The result of the scan is an Array, with each sucessfully scanned and transformed value.args The scanning
stops if a scan is unsuccesful and the scanned result up to that point is returned. If there was no
succesful scan at all, the result is an empty Array. The optional code block is typically used to
assert that the scan was succesful, and either produce the same input, or perform unwrapping of
the result


      "42".scanf("%i")
      "42".scanf("%i") |$x| {
        unless $x[0] =~ Integer {
          fail "Expected a well formed integer value, got '$x[0]'"
        }
        $x[0]
      }

- since 3.7.4
- note requires `parser = future`
DOC
) do |args|
  function_fail(["scanf() is only available when parser/evaluator future is in effect"])
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
puppet-3.7.4 lib/puppet/parser/functions/scanf.rb
puppet-3.7.4-x86-mingw32 lib/puppet/parser/functions/scanf.rb
puppet-3.7.4-x64-mingw32 lib/puppet/parser/functions/scanf.rb