numeris_romanis 0.0.1

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/numeris_romanis.rb +34 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: dbc3cdf62306537ce5c6bf46f8c02650e3f38b9d
4
+ data.tar.gz: 89571b952d22175c51394c6ef414b396370562ce
5
+ SHA512:
6
+ metadata.gz: 7183fce9d25c71e66ab2d3f85dbfd52561a5d7037b3e32ca21fe977b5f2d0e130e9e49df7040fefb443e1d1d5ba5d6338be996f68f495a48eec0f6b037b3ae16
7
+ data.tar.gz: ec73e608a5fff7e4861c83d518a7035c1dec87938f36b902e0fbb38ac1efba62c4a4391bd15b0014b0edbd7904d46bbcb897c0130658d33a4a400c9eba6e3786
@@ -0,0 +1,34 @@
1
+ class NumerisRomanis
2
+
3
+ MAP = {
4
+ 1000 => 'M', 900 => 'CM', 500 => 'D', 400 => 'CD', 100 => 'C', 90 => 'XC',
5
+ 50 => 'L', 40 => 'XL', 10 => 'X', 9 => 'IX', 5 => 'V', 4 => 'IV', 1 => 'I'}
6
+
7
+ def initialize
8
+ @romans = {}
9
+ (1..3999).each do |number|
10
+ @romans[number] = roman_for(number)
11
+ end
12
+ end
13
+
14
+ def to_roman(value)
15
+ @romans[value]
16
+ end
17
+
18
+ def to_decimal(roman)
19
+ @romans.key(roman)
20
+ end
21
+
22
+ private
23
+
24
+ def roman_for(value)
25
+ conversion = ''
26
+ MAP.each do |decimal, roman|
27
+ result = value.divmod(decimal)
28
+ conversion << roman * result.first
29
+ value = result.last
30
+ end
31
+ conversion
32
+ end
33
+
34
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: numeris_romanis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mauro Quaglia
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-14 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Converts decimal into roman and vice versa. The ranges permitted are
14
+ [1, 3999] and [I, MMMCMXCIX].
15
+ email: mauroquaglia@libero.it
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/numeris_romanis.rb
21
+ homepage: https://github.com/MauroQuaglia/numeris_romanis
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message: Thanks for installing numeris_romanis gem!
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: 2.0.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.5.1
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Converts decimal into roman and vice versa
45
+ test_files: []