Merge pull request #448 from DavidS/fix_range

range(): fix TypeError(can't convert nil into Integer) when using range ...
This commit is contained in:
TP Honey 2015-05-06 13:55:22 +01:00
commit 4f6c6fa3e5
2 changed files with 10 additions and 3 deletions

View file

@ -47,7 +47,7 @@ Will return: [0,2,4,6,8]
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+)$/)
@ -55,7 +55,7 @@ Will return: [0,2,4,6,8]
stop = m[3]
type = m[2]
step = 1
elsif value.match(/^.+$/)
raise(Puppet::ParseError, "range(): Unable to compute range " +
"from the value: #{value}")
@ -78,7 +78,7 @@ Will return: [0,2,4,6,8]
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

View file

@ -68,6 +68,13 @@ describe "the range function" do
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