kabal 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/README.md +1 -4
- data/lib/kabal/languages/roman.rb +27 -0
- data/lib/kabal/supported_languages.rb +1 -0
- data/lib/kabal/version.rb +1 -1
- data/test/lib/kabal/languages/roman_test.rb +21 -0
- data/test/lib/kabal_test.rb +2 -2
- data/yaml/languages.yml +2 -1
- data/yaml/languages/rm.yml +10 -0
- data/yaml/support.yml +4 -0
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e8de655478fb0846e2e5d7143e344d26e1eb561
|
4
|
+
data.tar.gz: a08cee4ef6228fa225eb395a30851417ceb4e6b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72742a22e7c0507f48eb82cefb8f5f9e444c7cc7960cd2914f6eab0be9c63034bba308784eeeeae23f61529d4cd6294b5b2e3661f84aa23c3fe1a1e27b63a11b
|
7
|
+
data.tar.gz: 99c82723b2572f002ea7bf964060c12c50d9911584b6fb7afffed120ae92374d7160af8ff05fdff903257b2ef2ccfbca0245a623d4e8b89aaf575af9dd0f0e13
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -90,10 +90,9 @@ Interfaces:
|
|
90
90
|
|
91
91
|
To add Elfin language you should use language generator:
|
92
92
|
|
93
|
-
```shell
|
94
93
|
$> cd generators
|
95
94
|
$> thor add_language elfin el
|
96
|
-
|
95
|
+
|
97
96
|
It will:
|
98
97
|
|
99
98
|
1. Create `lib/kabal/languages/elfin.rb`. You'll describe rules of this language to drawing numbers there.
|
@@ -131,10 +130,8 @@ HINT: Method `Kabal.to_text_in_elfin` will create automatically.
|
|
131
130
|
|
132
131
|
If you want remove language:
|
133
132
|
|
134
|
-
```shell
|
135
133
|
$> cd generators
|
136
134
|
$> thor remove_language elfin
|
137
|
-
```
|
138
135
|
|
139
136
|
## Testing
|
140
137
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'kabal/languages/language'
|
2
|
+
|
3
|
+
module Kabal
|
4
|
+
class Roman < Kabal::Language
|
5
|
+
def convert(number)
|
6
|
+
if number == 0
|
7
|
+
'0'
|
8
|
+
else
|
9
|
+
symbols = { 0 => ['I', 'V'], 1 => ['X', 'L'], 2 => ['C', 'D'], 3 => ['M'] }
|
10
|
+
reversed_digits = number.to_s.split(//).reverse
|
11
|
+
romans = []
|
12
|
+
reversed_digits.length.times do |i|
|
13
|
+
if reversed_digits[i].to_i < 4
|
14
|
+
romans << (symbols[i][0] * reversed_digits[i].to_i)
|
15
|
+
elsif reversed_digits[i].to_i == 4
|
16
|
+
romans << (symbols[i][0] + symbols[i][1])
|
17
|
+
elsif reversed_digits[i].to_i == 9
|
18
|
+
romans << (symbols[i][0] + symbols[i + 1][0])
|
19
|
+
else
|
20
|
+
romans << (symbols[i][1] + (symbols[i][0] * ((reversed_digits[i].to_i) - 5)))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
romans.reverse.join ''
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/kabal/version.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class RomanTest < TestCase
|
4
|
+
def setup
|
5
|
+
@lang = Kabal::Roman.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_zero_number
|
9
|
+
assert_equal "0", @lang.convert(0)
|
10
|
+
assert_equal "0", @lang.convert(-0)
|
11
|
+
end
|
12
|
+
def test_to_text_with_single_number
|
13
|
+
assert_equal "I", @lang.convert(1)
|
14
|
+
end
|
15
|
+
def test_to_text_with_two_words_number
|
16
|
+
assert_equal "XXV", @lang.convert(25)
|
17
|
+
end
|
18
|
+
def test_to_text_with_three_words_number
|
19
|
+
assert_equal "DCXXV", @lang.convert(625)
|
20
|
+
end
|
21
|
+
end
|
data/test/lib/kabal_test.rb
CHANGED
@@ -28,8 +28,8 @@ class KabalTest < TestCase
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def test_to_text_in_language_by_index_with_unsupport_language
|
31
|
-
assert_equal NoLanguageSupportError.message, Kabal.to_text_in_language_by_index(125125125125,
|
32
|
-
assert_equal NoLanguageSupportError.message, Kabal.to_text_in_language_by_index("125125125125",
|
31
|
+
assert_equal NoLanguageSupportError.message, Kabal.to_text_in_language_by_index(125125125125, 4)
|
32
|
+
assert_equal NoLanguageSupportError.message, Kabal.to_text_in_language_by_index("125125125125", 4)
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_to_text_in_language_with_unsupported_language
|
data/yaml/languages.yml
CHANGED
data/yaml/support.yml
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kabal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- lib/kabal/languages/global/natural_numbers.rb
|
81
81
|
- lib/kabal/languages/global/number_properities.rb
|
82
82
|
- lib/kabal/languages/language.rb
|
83
|
+
- lib/kabal/languages/roman.rb
|
83
84
|
- lib/kabal/languages/russian.rb
|
84
85
|
- lib/kabal/languages/russian/declinations.rb
|
85
86
|
- lib/kabal/languages/russian/fractional_numbers.rb
|
@@ -89,6 +90,7 @@ files:
|
|
89
90
|
- test/lib/bigtest.rb
|
90
91
|
- test/lib/kabal/languages/deutsch_test.rb
|
91
92
|
- test/lib/kabal/languages/english_test.rb
|
93
|
+
- test/lib/kabal/languages/roman_test.rb
|
92
94
|
- test/lib/kabal/languages/russian_test.rb
|
93
95
|
- test/lib/kabal_test.rb
|
94
96
|
- test/test_helper.rb
|
@@ -96,6 +98,7 @@ files:
|
|
96
98
|
- yaml/languages.yml
|
97
99
|
- yaml/languages/de.yml
|
98
100
|
- yaml/languages/en.yml
|
101
|
+
- yaml/languages/rm.yml
|
99
102
|
- yaml/languages/ru.yml
|
100
103
|
- yaml/support.yml
|
101
104
|
homepage: https://github.com/kalashnikovisme/kabal
|
@@ -120,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
123
|
version: '0'
|
121
124
|
requirements: []
|
122
125
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
126
|
+
rubygems_version: 2.5.1
|
124
127
|
signing_key:
|
125
128
|
specification_version: 4
|
126
129
|
summary: Number To Text Helper
|
@@ -128,7 +131,7 @@ test_files:
|
|
128
131
|
- test/lib/bigtest.rb
|
129
132
|
- test/lib/kabal/languages/deutsch_test.rb
|
130
133
|
- test/lib/kabal/languages/english_test.rb
|
134
|
+
- test/lib/kabal/languages/roman_test.rb
|
131
135
|
- test/lib/kabal/languages/russian_test.rb
|
132
136
|
- test/lib/kabal_test.rb
|
133
137
|
- test/test_helper.rb
|
134
|
-
has_rdoc:
|