kabal 0.2.10 → 0.2.11
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/lib/kabal.rb +2 -2
- data/lib/kabal/languages/language.rb +24 -13
- data/lib/kabal/version.rb +1 -1
- data/test/lib/kabal/languages/english_test.rb +1 -4
- data/test/lib/kabal/languages/russian_test.rb +1 -4
- data/test/lib/kabal_test.rb +1 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b580af08037ba20f127cb0682ef45b7037e0d0d
|
4
|
+
data.tar.gz: fb214f852a961fe6ab669836b0c781e6ef1af5fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92c1d897cd2294239335a20d2c53882fadbad6c6c478d3d9c9523b31a97b304fe31b633f71aa96cfbda74adcba4ec106613eba46130cbebfac469ebba4863701
|
7
|
+
data.tar.gz: bcae9e1f9575d7a8acf3df8bf98d0268aaed22f0f31874fb5ea0248c87cd4157b2c54b787af6de92edae38851fe03c0cf43f665ca90c3ffdf020b4cac4df8940
|
data/lib/kabal.rb
CHANGED
@@ -29,7 +29,7 @@ module Kabal
|
|
29
29
|
obj = Object.const_get("Kabal::" + language_at_once).new
|
30
30
|
obj.convert number
|
31
31
|
else
|
32
|
-
|
32
|
+
NoLanguageSupportError.message
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -39,7 +39,7 @@ module Kabal
|
|
39
39
|
obj = Object.const_get("Kabal::" + languages[language_at_once_index].first).new
|
40
40
|
obj.convert number
|
41
41
|
else
|
42
|
-
|
42
|
+
NoLanguageSupportError.message
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -6,8 +6,20 @@ module Kabal
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def convert(number)
|
9
|
-
|
10
|
-
|
9
|
+
if no_supports? number
|
10
|
+
error number
|
11
|
+
else
|
12
|
+
convert_number number
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def error(number)
|
17
|
+
if number_is_out_of_the_range? number
|
18
|
+
return Kabal::Errors::NumberOutRangeError.message
|
19
|
+
end
|
20
|
+
if not supports_fractional? and number % 1 != 0
|
21
|
+
Kabal::Errors::NoSupportForFractionalNumberOnCurrentLanguages.message
|
22
|
+
end
|
11
23
|
end
|
12
24
|
|
13
25
|
def lang
|
@@ -29,10 +41,6 @@ module Kabal
|
|
29
41
|
eval @supports["natural"]["max"]
|
30
42
|
end
|
31
43
|
|
32
|
-
def supports_fractional?
|
33
|
-
@supports["fractional"]
|
34
|
-
end
|
35
|
-
|
36
44
|
def names
|
37
45
|
@names[lang]
|
38
46
|
end
|
@@ -70,13 +78,16 @@ module Kabal
|
|
70
78
|
number / (10 ** number_order(number))
|
71
79
|
end
|
72
80
|
|
73
|
-
def
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
81
|
+
def supports_fractional?
|
82
|
+
@supports["fractional"]
|
83
|
+
end
|
84
|
+
|
85
|
+
def number_is_out_of_the_range?(number)
|
86
|
+
number >= max_value or number <= min_value
|
87
|
+
end
|
88
|
+
|
89
|
+
def no_supports?(number)
|
90
|
+
(number % 1 != 0 and not supports_fractional?) or number_is_out_of_the_range?(number)
|
80
91
|
end
|
81
92
|
end
|
82
93
|
end
|
data/lib/kabal/version.rb
CHANGED
@@ -38,10 +38,7 @@ class EnglishTest < TestCase
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_fractional_number
|
41
|
-
|
42
|
-
@eng.convert 0.1
|
43
|
-
end
|
44
|
-
assert_equal NoSupportForFractionalNumberOnCurrentLanguages.message, exception.message
|
41
|
+
assert_equal NoSupportForFractionalNumberOnCurrentLanguages.message, @eng.convert(0.1)
|
45
42
|
end
|
46
43
|
def test_hundred_random_numbers
|
47
44
|
r = Random.new
|
@@ -46,10 +46,7 @@ class RussianTest < TestCase
|
|
46
46
|
assert_equal @rus.convert(-22000), "минус двадцать две тысячи"
|
47
47
|
end
|
48
48
|
def test_to_text_with_negative_number
|
49
|
-
|
50
|
-
@rus.convert -(10 ** 103)
|
51
|
-
end
|
52
|
-
assert_equal NumberOutRangeError.message, exception.message
|
49
|
+
assert_equal NumberOutRangeError.message, @rus.convert(-(10 ** 103))
|
53
50
|
end
|
54
51
|
def test_to_text_with_fractional_number_with_zero
|
55
52
|
assert_equal @rus.convert(0.01), "ноль целых одна сотая"
|
data/test/lib/kabal_test.rb
CHANGED
@@ -21,15 +21,10 @@ class KabalTest < TestCase
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_to_text_in_language_with_unsupported_language
|
24
|
-
|
25
|
-
exception = assert_raises RuntimeError do
|
26
|
-
Kabal.to_text_in_language(125125125125, "Elfin")
|
27
|
-
end
|
28
|
-
assert_equal NoLanguageSupportError.message, exception.message
|
24
|
+
assert_equal NoLanguageSupportError.message, Kabal.to_text_in_language(125125125125, "Elfin")
|
29
25
|
end
|
30
26
|
|
31
27
|
def test_language_init_with_unsupported_language
|
32
|
-
#FIXME replace RuntimeError to NoLanguageSupportError
|
33
28
|
exception = assert_raises RuntimeError do
|
34
29
|
Kabal.language = "Elfin"
|
35
30
|
end
|
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: 0.2.
|
4
|
+
version: 0.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kalashnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|