If you want to generate some sort of chunks from a large strings you can use the following method.
You give as a param an array of arrays, each array is pointing with % the start position of the chunk and the last position.


class String

def String.random_alphanumeric(size=16)
(1..size).collect { (i = Kernel.rand(62); i += ((i < 10) ? 48 : ((i < 36) ? 55 : 61 ))).chr }.join end def chunkanize(parts = [[0,4], [48, 52], [95, 100]]) return [self] if self.size <= 1 # working with words terms_array = self.split(/ /) join_type = " " # working with letters if terms_array.size <= 100 terms_array = self.split(//) join_type = "" end one_percent = terms_array.size.to_f / 100 parts.collect do |part| start = part[0] stop = part[1] terms_array[(start * one_percent)..(stop * one_percent)].join(join_type) end end end