module UnitSplit

Constants

VERSION

Public Class Methods

split(text, unit) click to toggle source
# File lib/unit_split.rb, line 6
def self.split(text, unit)
  if text.nil? || 0 == text.length
    raise ArgumentError, "invalid input"
  end

  number = text.to_i
  response = []

  last_label = nil
  value  = nil
  remain = nil

  unit.each do |entry|
    label   = entry[0]
    divider = entry[1]

    value  = (number / divider)
    remain = (number % divider)

    response.push([last_label, remain])

    if value == 0
      return response
    end

    last_label = label
    number = value
  end

  if value > 0
    response.push([last_label, value])
  end
  return response
end