type = '..' # Use the simplest type of Range available in Ruby
- else # arguments.size == 0
+ else # arguments.size == 1
value = arguments[0]
if m = value.match(/^(\w+)(\.\.\.?|\-)(\w+)$/)
stop = m[3]
type = m[2]
-
+ step = 1
elsif value.match(/^.+$/)
raise(Puppet::ParseError, "range(): Unable to compute range " +
"from the value: #{value}")
when '...' then (start ... stop) # Exclusive of last element
end
- result = range.step(step).collect { |i| i }
+ result = range.step(step).to_a
return result
end
end
end
+ describe 'with a ruby-like range' do
+ it "returns a number range" do
+ result = scope.function_range(["1..4"])
+ expect(result).to eq [1,2,3,4]
+ end
+ end
+
describe 'with a numeric range' do
it "returns a range of numbers" do
expected = (1..10).to_a