romanconvert 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/romanconvert.rb +86 -0
- metadata +45 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 5f1d9cad6c1ec60f7f49074bffd8fbfb2d9a4e64
|
|
4
|
+
data.tar.gz: 214d2cdb676383483695afe2516a8d777d03d0c7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: eeef3362994d199464bcf07a42a245613a7bfa19b50b839a5fb326bbd8aeeb6a84417e656f8dacc67220472902b0c0f4e152d95eadbcac66a56495acbeff7ea5
|
|
7
|
+
data.tar.gz: b7e90635681092005f0bdb2e331facea33e871be556c5cf89444ae019c6aea59ba5b7e75e565b1c8653c90c3e82ae480358f050d04e1326a9a06a0fdccc48e24
|
data/lib/romanconvert.rb
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
class Romanconvert
|
|
2
|
+
|
|
3
|
+
def self.romans(number)
|
|
4
|
+
numeral = []
|
|
5
|
+
|
|
6
|
+
num_M = number / 1000
|
|
7
|
+
number = number % 1000
|
|
8
|
+
num_M.times do
|
|
9
|
+
numeral.push("M")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
num_D = number / 500
|
|
13
|
+
number = number % 500
|
|
14
|
+
num_D.times do
|
|
15
|
+
numeral.push("D")
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
num_C = number / 100
|
|
19
|
+
number = number % 100
|
|
20
|
+
if (num_C == 4) && (numeral[-1] == "D")
|
|
21
|
+
numeral.pop
|
|
22
|
+
numeral.push("CM")
|
|
23
|
+
elsif num_C == 4
|
|
24
|
+
numeral.push("CD")
|
|
25
|
+
else
|
|
26
|
+
num_C.times do
|
|
27
|
+
numeral.push("C")
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
num_L = number / 50
|
|
32
|
+
number = number % 50
|
|
33
|
+
num_L.times do
|
|
34
|
+
numeral.push("L")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
num_X = number / 10
|
|
38
|
+
number = number % 10
|
|
39
|
+
if (num_X == 4) && (numeral[-1] == "L")
|
|
40
|
+
numeral.pop
|
|
41
|
+
numeral.push("XC")
|
|
42
|
+
elsif num_X == 4
|
|
43
|
+
numeral.push("XL")
|
|
44
|
+
else
|
|
45
|
+
num_X.times do
|
|
46
|
+
numeral.push("X")
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
num_V = number / 5
|
|
51
|
+
number = number % 5
|
|
52
|
+
num_V.times do
|
|
53
|
+
numeral.push("V")
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
if (number == 4) && (numeral[-1] == "V")
|
|
57
|
+
numeral.pop
|
|
58
|
+
numeral.push("IX")
|
|
59
|
+
elsif number == 4
|
|
60
|
+
numeral.push("IV")
|
|
61
|
+
else
|
|
62
|
+
number.times do
|
|
63
|
+
numeral.push("I")
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
numeral.join
|
|
68
|
+
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.arabs (numeral)
|
|
72
|
+
total = 0
|
|
73
|
+
previousNum = 0
|
|
74
|
+
numeral_value = {"I" => 1, "V" => 5, "X" => 10, "L" => 50, "C" => 100, "D" => 500, "M" => 1000}
|
|
75
|
+
numeral.reverse.each_char do | num |
|
|
76
|
+
if previousNum > numeral_value[num]
|
|
77
|
+
total -= numeral_value[num]
|
|
78
|
+
previousNum = numeral_value[num]
|
|
79
|
+
else
|
|
80
|
+
total += numeral_value[num]
|
|
81
|
+
previousNum = numeral_value[num]
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
return total
|
|
85
|
+
end
|
|
86
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: romanconvert
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Sean Morrison
|
|
8
|
+
- Griffin Wimminger
|
|
9
|
+
autorequire:
|
|
10
|
+
bindir: bin
|
|
11
|
+
cert_chain: []
|
|
12
|
+
date: 2014-07-22 00:00:00.000000000 Z
|
|
13
|
+
dependencies: []
|
|
14
|
+
description: Converts numbers to a Roman Numeral String and vice-versa
|
|
15
|
+
email: SeanMorrison112358@gmail.com
|
|
16
|
+
executables: []
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- lib/romanconvert.rb
|
|
21
|
+
homepage: http://rubygems.org/gems/romanconvert
|
|
22
|
+
licenses:
|
|
23
|
+
- MIT
|
|
24
|
+
metadata: {}
|
|
25
|
+
post_install_message:
|
|
26
|
+
rdoc_options: []
|
|
27
|
+
require_paths:
|
|
28
|
+
- lib
|
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
35
|
+
requirements:
|
|
36
|
+
- - ">="
|
|
37
|
+
- !ruby/object:Gem::Version
|
|
38
|
+
version: '0'
|
|
39
|
+
requirements: []
|
|
40
|
+
rubyforge_project:
|
|
41
|
+
rubygems_version: 2.2.0
|
|
42
|
+
signing_key:
|
|
43
|
+
specification_version: 4
|
|
44
|
+
summary: Roman Numeral Converter
|
|
45
|
+
test_files: []
|