Module: UnitSplit

Defined in:
lib/unit_split.rb,
lib/unit_split/version.rb

Defined Under Namespace

Modules: Unit Classes: CLI

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.split(text, unit) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# 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