From: Erik Dalén Date: Wed, 12 Nov 2014 15:02:05 +0000 (+0100) Subject: Make the range function work with integers X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=ce995e15d5c266fd6d7fa781284771a5a5d5b00e;p=puppet-stdlib.git Make the range function work with integers This is needed for the future parser which actually treats numbers as numbers and strings as strings. With this patch you can use range(1,5) instead of having to quote them like range('1','5'). --- diff --git a/lib/puppet/parser/functions/range.rb b/lib/puppet/parser/functions/range.rb index 06d75d4..49fba21 100644 --- a/lib/puppet/parser/functions/range.rb +++ b/lib/puppet/parser/functions/range.rb @@ -66,7 +66,7 @@ Will return: [0,2,4,6,8] end # Check whether we have integer value if so then make it so ... - if start.match(/^\d+$/) + if start.to_s.match(/^\d+$/) start = start.to_i stop = stop.to_i else diff --git a/spec/functions/range_spec.rb b/spec/functions/range_spec.rb index 9b9ece0..1446b24 100755 --- a/spec/functions/range_spec.rb +++ b/spec/functions/range_spec.rb @@ -67,4 +67,11 @@ describe "the range function" do expect(scope.function_range(["00", "10"])).to eq expected end end + + describe 'with a numeric range' do + it "returns a range of numbers" do + expected = (1..10).to_a + expect(scope.function_range([1,10])).to eq expected + end + end end