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 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: