Advertisement
Guest User

Untitled

a guest
Jun 7th, 2015
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 0.54 KB | None | 0 0
  1. def in_groups(number, fill_with = nil)
  2.      
  3.     if number == 0
  4.       raise IndexOutOfBounds.new
  5.     end
  6.     division = size.fdiv number
  7.     modulo = size % number
  8.      
  9.     groups = [] of (Int32 | String | Char)
  10.     start = 0
  11.    
  12.  
  13.     number.times do |index|
  14.       length = division + (modulo > 0 && modulo > index ? 1 : 0)
  15.       last_group = self[start, length]
  16.       groups << last_group
  17.       last_group << fill_with if fill_with != false &&
  18.         modulo > 0 && length == division
  19.       start += length
  20.     end
  21.  
  22.     groups
  23. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement