X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fdsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Flib%2Fpuppet%2Fparser%2Ffunctions%2Frange.rb;h=a309b78c311e86084ebd54147c2100f1ce617754;hp=31baee51c9fca83935ca25c334af3ffeab025175;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hpb=6f656bd4265e3dab13b9af2bf96e9044322e9d8f diff --git a/3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb b/3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb index 31baee51c..a309b78c3 100644 --- a/3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb +++ b/3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb @@ -4,39 +4,43 @@ # TODO(Krzysztof Wilczynski): We probably need to approach numeric values differently ... module Puppet::Parser::Functions newfunction(:range, :type => :rvalue, :doc => <<-DOC - When given range in the form of (start, stop) it will extrapolate a range as - an array. + @summary + When given range in the form of (start, stop) it will extrapolate a range as + an array. - *Examples:* + @return + the range is extrapolated as an array - range("0", "9") + @example **Usage** + range("0", "9") + Will return: [0,1,2,3,4,5,6,7,8,9] - Will return: [0,1,2,3,4,5,6,7,8,9] + range("00", "09") + Will return: [0,1,2,3,4,5,6,7,8,9] + (Zero padded strings are converted to integers automatically) - range("00", "09") + range("a", "c") + Will return: ["a","b","c"] - Will return: [0,1,2,3,4,5,6,7,8,9] (Zero padded strings are converted to - integers automatically) + range("host01", "host10") + Will return: ["host01", "host02", ..., "host09", "host10"] - range("a", "c") + range("0", "9", "2") + Will return: [0,2,4,6,8] - Will return: ["a","b","c"] - - range("host01", "host10") - Will return: ["host01", "host02", ..., "host09", "host10"] NB Be explicit in including trailing zeros. Otherwise the underlying ruby function will fail. - Passing a third argument will cause the generated range to step by that - interval, e.g. - - range("0", "9", "2") - - Will return: [0,2,4,6,8] + > *Note:* + Passing a third argument will cause the generated range to step by that + interval, e.g. The Puppet Language support Integer and Float ranges by using the type system. Those are suitable for - iterating a given number of times. Also see the step() function in Puppet for skipping values. + iterating a given number of times. + + @see + the step() function in Puppet for skipping values. - Integer[0, 9].each |$x| { notice($x) } # notices 0, 1, 2, ... 9 + Integer[0, 9].each |$x| { notice($x) } # notices 0, 1, 2, ... 9 DOC ) do |arguments| @@ -80,7 +84,7 @@ module Puppet::Parser::Functions when '...' then (start...stop) # Exclusive of last element end - result = range.step(step).to_a + result = range.step(step).first(1_000_000).to_a return result end