projects
/
mirror
/
dsa-puppet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update stdlib
[mirror/dsa-puppet.git]
/
3rdparty
/
modules
/
stdlib
/
lib
/
puppet
/
parser
/
functions
/
range.rb
diff --git
a/3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb
b/3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb
index
49fba21
..
72c373a
100644
(file)
--- a/
3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb
+++ b/
3rdparty/modules/stdlib/lib/puppet/parser/functions/range.rb
@@
-25,8
+25,8
@@
integers automatically)
Will return: ["a","b","c"]
range("host01", "host10")
Will return: ["a","b","c"]
range("host01", "host10")
-
Will return: ["host01", "host02", ..., "host09", "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.
Passing a third argument will cause the generated range to step by that
interval, e.g.
@@
-37,18
+37,16
@@
Will return: [0,2,4,6,8]
EOS
) do |arguments|
EOS
) do |arguments|
- # We support more than one argument but at least one is mandatory ...
- raise(Puppet::ParseError, "range(): Wrong number of " +
- "arguments given (#{arguments.size} for 1)") if arguments.size < 1
+ raise(Puppet::ParseError, 'range(): Wrong number of arguments given (0 for 1)') if arguments.size == 0
if arguments.size > 1
start = arguments[0]
stop = arguments[1]
step = arguments[2].nil? ? 1 : arguments[2].to_i.abs
if arguments.size > 1
start = arguments[0]
stop = arguments[1]
step = arguments[2].nil? ? 1 : arguments[2].to_i.abs
- type = '..' #
We select simplest type for Range available in Ruby ...
+ type = '..' #
Use the simplest type of Range available in Ruby
- els
if arguments.size > 0
+ els
e # arguments.size == 1
value = arguments[0]
if m = value.match(/^(\w+)(\.\.\.?|\-)(\w+)$/)
value = arguments[0]
if m = value.match(/^(\w+)(\.\.\.?|\-)(\w+)$/)
@@
-56,16
+54,15
@@
Will return: [0,2,4,6,8]
stop = m[3]
type = m[2]
stop = m[3]
type = m[2]
-
+ step = 1
elsif value.match(/^.+$/)
elsif value.match(/^.+$/)
- raise(Puppet::ParseError, 'range(): Unable to compute range ' +
- 'from the value given')
+ raise(Puppet::ParseError, "range(): Unable to compute range from the value: #{value}")
else
else
- raise(Puppet::ParseError,
'range(): Unknown format of range given'
)
+ raise(Puppet::ParseError,
"range(): Unknown range format: #{value}"
)
end
end
end
end
- #
Check whether we have integer value if so then make it so ...
+ #
If we were given an integer, ensure we work with one
if start.to_s.match(/^\d+$/)
start = start.to_i
stop = stop.to_i
if start.to_s.match(/^\d+$/)
start = start.to_i
stop = stop.to_i
@@
-76,10
+73,10
@@
Will return: [0,2,4,6,8]
range = case type
when /^(\.\.|\-)$/ then (start .. stop)
range = case type
when /^(\.\.|\-)$/ then (start .. stop)
- when
/^(\.\.\.)$/ then (start ... stop) # Exclusive of last element ...
+ when
'...' then (start ... stop) # Exclusive of last element
end
end
- result = range.step(step).
collect { |i| i } # Get them all ... Pokemon ...
+ result = range.step(step).
to_a
return result
end
return result
end