Merge remote-tracking branch 'pr/56' into pull-56
authorAdrien Thebo <git@somethingsinistral.net>
Tue, 28 May 2013 18:03:51 +0000 (11:03 -0700)
committerAdrien Thebo <git@somethingsinistral.net>
Tue, 28 May 2013 18:07:41 +0000 (11:07 -0700)
Conflicts:
lib/puppet/parser/functions/range.rb
spec/unit/puppet/parser/functions/range_spec.rb

1  2 
lib/puppet/parser/functions/range.rb
spec/unit/puppet/parser/functions/range_spec.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|
  
@@@ -17,18 -23,39 +17,49 @@@ describe "the range function" d
      result.should(eq(['a','b','c','d']))
    end
  
 -    result = @scope.function_range(["a","d","1"])
+   it "should return a letter range given a step of 1" do
 -    result = @scope.function_range(["a","d","2"])
++    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(["1","4","-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(["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
  
 -    result = @scope.function_range(["1","4","1"])
 +  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","2"])
++    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.should(eq([1,3]))
+   end
  end