class CreamCheese::Knife

Public Class Methods

spread(list, size=list.length, spacer=nil) click to toggle source
# File lib/CreamCheese.rb, line 3
def self.spread(list, size=list.length, spacer=nil)
  length = list.length
  spaces = size - length

  spaces_each = spaces / length
  spaces = spaces % length

  merge = []

  list.each_with_index do |item, i|
    if item != :SPREAD_SPACER
      spaces_this = spaces_each
      if spaces > 0
        spaces_this += 1
        spaces -= 1
      end
      (0..spaces_this-1).each do
        list.insert(i+1, :SPREAD_SPACER)
      end
    end
  end
  list.map {|item| item == :SPREAD_SPACER ? spacer : item}
end