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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/romanconvert.rb +86 -0
  3. 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
@@ -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: []