| Class | Array |
| In: |
plugins/mcollective/application/inventory.rb
|
| Parent: | Object |
Monkey patching array with a in_groups_of method that walks an array in groups, pass a block to call the block on each sub array
# File plugins/mcollective/application/inventory.rb, line 7
7: def in_groups_of(chunk_size, padded_with=nil)
8: arr = self.clone
9:
10: # how many to add
11: padding = chunk_size - (arr.size % chunk_size)
12:
13: # pad at the end
14: arr.concat([padded_with] * padding)
15:
16: # how many chunks we'll make
17: count = arr.size / chunk_size
18:
19: # make that many arrays
20: result = []
21: count.times {|s| result << arr[s * chunk_size, chunk_size]}
22:
23: if block_given?
24: result.each{|a| yield(a)}
25: else
26: result
27: end
28: end