From: Adrien Thebo Date: Tue, 28 May 2013 18:03:51 +0000 (-0700) Subject: Merge remote-tracking branch 'pr/56' into pull-56 X-Git-Url: https://gitweb.fluxo.info/?a=commitdiff_plain;h=0f2d69fdfd9563aeef1bae0aadb1d12aab0d25c0;p=puppet-stdlib.git Merge remote-tracking branch 'pr/56' into pull-56 Conflicts: lib/puppet/parser/functions/range.rb spec/unit/puppet/parser/functions/range_spec.rb --- 0f2d69fdfd9563aeef1bae0aadb1d12aab0d25c0 diff --cc lib/puppet/parser/functions/range.rb index 825617b,03ab9e9..0849491 --- a/lib/puppet/parser/functions/range.rb +++ b/lib/puppet/parser/functions/range.rb @@@ -24,9 -19,12 +24,16 @@@ integers automatically Will return: ["a","b","c"] + range("host01", "host10") + +Will return: ["host01", "host02", ..., "host09", "host10"] ++ + 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] EOS ) do |arguments| diff --cc spec/unit/puppet/parser/functions/range_spec.rb index 42751f4,24cc391..5eb290f --- a/spec/unit/puppet/parser/functions/range_spec.rb +++ b/spec/unit/puppet/parser/functions/range_spec.rb @@@ -17,18 -23,39 +17,49 @@@ describe "the range function" d result.should(eq(['a','b','c','d'])) end + it "should return a letter range given a step of 1" do - result = @scope.function_range(["a","d","1"]) ++ result = scope.function_range(["a","d","1"]) + result.should(eq(['a','b','c','d'])) + end + + it "should return a stepped letter range" do - result = @scope.function_range(["a","d","2"]) ++ result = scope.function_range(["a","d","2"]) + result.should(eq(['a','c'])) + end + + it "should return a stepped letter range given a negative step" do - result = @scope.function_range(["1","4","-2"]) ++ result = scope.function_range(["a","d","-2"]) + result.should(eq(['a','c'])) + end + it "should return a number range" do - result = @scope.function_range(["1","4"]) + result = scope.function_range(["1","4"]) result.should(eq([1,2,3,4])) end + it "should work with padded hostname like strings" do + expected = ("host01".."host10").to_a + scope.function_range(["host01","host10"]).should eq expected + end + + it "should coerce zero padded digits to integers" do + expected = (0..10).to_a + scope.function_range(["00", "10"]).should eq expected + end ++ + it "should return a number range given a step of 1" do - result = @scope.function_range(["1","4","1"]) ++ result = scope.function_range(["1","4","1"]) + result.should(eq([1,2,3,4])) + end + + it "should return a stepped number range" do - result = @scope.function_range(["1","4","2"]) ++ result = scope.function_range(["1","4","2"]) + result.should(eq([1,3])) + end + + it "should return a stepped number range given a negative step" do - result = @scope.function_range(["1","4","-2"]) ++ result = scope.function_range(["1","4","-2"]) + result.should(eq([1,3])) + end + end