Sha256: af96e684070bb32eee935481f6cec72d4b32438d806e575930315bffc65142a1
Contents?: true
Size: 1.27 KB
Versions: 12
Compression:
Stored size: 1.27 KB
Contents
# Breaks an innermost iteration as if it encountered an end of input. # This function does not return to the caller. # # The signal produced to stop the iteration bubbles up through # the call stack until either terminating the innermost iteration or # raising an error if the end of the call stack is reached. # # The break() function does not accept an argument. # # @example Using `break` # # ```puppet # $data = [1,2,3] # notice $data.map |$x| { if $x == 3 { break() } $x*10 } # ``` # # Would notice the value `[10, 20]` # # @example Using a nested `break` # # ```puppet # function break_if_even($x) { # if $x % 2 == 0 { break() } # } # $data = [1,2,3] # notice $data.map |$x| { break_if_even($x); $x*10 } #``` # Would notice the value `[10]` # # * Also see functions `next` and `return` # # @since 4.8.0 # Puppet::Functions.create_function(:break) do dispatch :break_impl do end def break_impl() stacktrace = Puppet::Pops::PuppetStack.stacktrace() if stacktrace.size > 0 file, line = stacktrace[0] else file = nil line = nil end # PuppetStopIteration contains file and line and is a StopIteration exception # so it can break a Ruby Kernel#loop or enumeration # raise Puppet::Pops::Evaluator::PuppetStopIteration.new(file, line) end end
Version data entries
12 entries across 12 versions & 2 rubygems