kabal 1.2.1 → 1.3.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 +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:
|