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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e818b1848c7be4a7bda4cff2f79a57bfb62504e
4
- data.tar.gz: 3166efe973b7d3734122eb0f45486659acb7c386
3
+ metadata.gz: 9e8de655478fb0846e2e5d7143e344d26e1eb561
4
+ data.tar.gz: a08cee4ef6228fa225eb395a30851417ceb4e6b1
5
5
  SHA512:
6
- metadata.gz: f5b3a03c0626192ccea304086fa34912a306743c868f77282d406c202a408554c652eee860b34b4a9b84c121dc6e0bdd29ac936f0395e17579acf4fc12b0662b
7
- data.tar.gz: 536b5f85f6c792c3299732bcc4bf94901d68efc9f7e11ddeee9bd53200b2d17495d14096907bec158d667fceb9dc761c283e88ab7a2906dc1f57f5430ce1331e
6
+ metadata.gz: 72742a22e7c0507f48eb82cefb8f5f9e444c7cc7960cd2914f6eab0be9c63034bba308784eeeeae23f61529d4cd6294b5b2e3661f84aa23c3fe1a1e27b63a11b
7
+ data.tar.gz: 99c82723b2572f002ea7bf964060c12c50d9911584b6fb7afffed120ae92374d7160af8ff05fdff903257b2ef2ccfbca0245a623d4e8b89aaf575af9dd0f0e13
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
  gem 'turn'
6
6
  gem 'pry'
7
- gem 'tconsole', git: "git://github.com/gma/tconsole"
7
+ gem 'tconsole', github: 'gma/tconsole'
8
8
  gem 'coveralls', require: false
9
9
  gem 'simplecov'
10
10
  gem 'minitest', '4.7.5'
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
@@ -3,5 +3,6 @@ module Kabal
3
3
  require 'kabal/languages/russian'
4
4
  require 'kabal/languages/english'
5
5
  require 'kabal/languages/deutsch'
6
+ require 'kabal/languages/roman'
6
7
  end
7
8
  end
@@ -1,3 +1,3 @@
1
1
  module Kabal
2
- VERSION = '1.2.1'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -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
@@ -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, 3)
32
- assert_equal NoLanguageSupportError.message, Kabal.to_text_in_language_by_index("125125125125", 3)
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
@@ -1,3 +1,4 @@
1
1
  Russian: "ru"
2
2
  English: "en"
3
- Deutsch: "de"
3
+ Deutsch: "de"
4
+ Roman: "rm"
@@ -0,0 +1,10 @@
1
+ rm:
2
+ minus: "minus on Roman"
3
+ 0: "0"
4
+ 1: 'I'
5
+ 5: 'V'
6
+ 10: 'X'
7
+ 50: 'L'
8
+ 100: 'C'
9
+ 500: 'D'
10
+ 1000: 'M'
@@ -17,3 +17,7 @@ support:
17
17
  max: "(10 ** 24) - 1"
18
18
  fractional:
19
19
  symbols: 16
20
+ rm:
21
+ natural:
22
+ min: '0'
23
+ max: '999'
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.2.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: 2014-09-24 00:00:00.000000000 Z
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.2.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: