Module: RomanNumerals

Included in:
String
Defined in:
lib/roman_numerals.rb,
lib/roman_numerals/version.rb

Constant Summary collapse

VERSION =
"1.0.0"

Instance Method Summary collapse

Instance Method Details

#r_to_iObject



3
4
5
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
# File 'lib/roman_numerals.rb', line 3

def r_to_i()

  numeral = self
  value = 0

  if numeral.empty?
    return nil
  end

  numeral.strip!
  numeral.upcase!

  if (numeral != numeral[/[MCDLXVI]*/])
    return nil
  end

  until numeral.length == 0 do
    value += 900 unless (numeral.sub! "CM", "").nil?
    value += 1000 unless (numeral.sub! "M", "").nil?
    value += 400 unless (numeral.sub! "CD", "").nil?
    value += 500 unless (numeral.sub! "D", "").nil?
    value += 90 unless (numeral.sub! "XC", "").nil?
    value += 100 unless (numeral.sub! "C", "").nil?
    value += 40 unless (numeral.sub! "XL", "").nil?
    value += 50 unless (numeral.sub! "L", "").nil?
    value += 9 unless (numeral.sub! "IX", "").nil?
    value += 10 unless (numeral.sub! "X", "").nil?
    value += 4 unless (numeral.sub! "IV", "").nil?
    value += 5 unless (numeral.sub! "V", "").nil?
    value += 1 unless (numeral.sub! "I", "").nil?
  end
  value
end