kabal 0.1.1 → 0.1.3

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: 6c28599c3888c66d7bc5a7228c266def08286499
4
- data.tar.gz: 50ddd67683b05f70ff979f9bc72204d5eee884fc
3
+ metadata.gz: 8c20540f012d04c0f365c55626f1864c9c633c7a
4
+ data.tar.gz: de31917cc938b3e6c8bc8851639604a3ba77bf52
5
5
  SHA512:
6
- metadata.gz: 50ec5fcc4a481425e6581e11c24bfec7c102381bcbf174a69de55dd42da285ecd6f9d8aefd838a02edb9afa9e59b35b91490f8e5ca73165fb3976d209ef47dc0
7
- data.tar.gz: 599c1f036a6d2d6aa85e88c322fbb85c147894bf311a897ee96f3649fa3ae9ab00f552044bf57b12217fbb0320ccb31ec003f33c831a77687a3ea1aa3a3560f7
6
+ metadata.gz: 98038c6116b3d7c8a05b252220a4ccaef8c0cef0a874e849ee3be79688e5310fe146e132cd3bda0b89313680ccbadb49d2e7e01b8e837ebedd2dea08fc02b161
7
+ data.tar.gz: 9876b459c62d41804d39e9de8d07f53036bdff9bc62e511c00ad983728561b7906b33e37e4b37c99a1eb34e73da53659d1b5934649f8b3c4fc88955b3f26cecb
data/Gemfile CHANGED
@@ -8,4 +8,3 @@ gem 'tconsole', git: "git://github.com/gma/tconsole"
8
8
  gem 'coveralls', require: false
9
9
  gem 'simplecov'
10
10
  gem 'minitest', '4.7.5'
11
- gem 'russian'
data/README.md CHANGED
@@ -21,12 +21,35 @@ Or install it yourself as:
21
21
 
22
22
  ## Usage
23
23
 
24
- TODO: Write usage instructions here
24
+ Kabal has one main feature - number to text "converting".
25
+
26
+ require 'kabal'
27
+ Kabal.to_text 1 #=> "один"
28
+
29
+ You can choose language to "converting".
30
+
31
+ Kabal.language = "Russian"
32
+
33
+ Supported Languages:
34
+
35
+ * Russian
36
+
37
+ *More languages will be added later.*
25
38
 
26
39
  ## Contributing
27
40
 
28
- 1. Fork it ( https://github.com/[my-github-username]/kabal/fork )
29
- 2. Create your feature branch (`git checkout -b my-new-feature`)
30
- 3. Commit your changes (`git commit -am 'Add some feature'`)
41
+ 1. Fork it ( https://github.com/kalashnikovisme/kabal/fork )
42
+ 2. Create your feature branch (`git flow feature start new_super_feature`)
43
+ 3. Commit your changes (`git commit`)
31
44
  4. Push to the branch (`git push origin my-new-feature`)
32
45
  5. Create a new Pull Request
46
+
47
+ ## How add languages
48
+
49
+ To add Elfin language you should:
50
+
51
+ 1. Create `lib/kabal/languages/elfin.rb`. You'll describe rules of this language to drawing numbers there.
52
+ 2. Create `test/lib/kabal/languages/elfin_test.rb`. You'll cover your code by tests there.
53
+ 3. Create `yaml/languages/el.yml`. You'll add numbers and words, which they correspond, there.
54
+ 4. Add `Elfin: "el"` to `yaml/languages.yml`.
55
+ 5. Add `require "kabal/languages/elfin"` to `lib/kabal/supported_languages.rb`.
data/kabal.gemspec CHANGED
@@ -6,7 +6,7 @@ require 'kabal/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "kabal"
8
8
  spec.version = Kabal::VERSION
9
- spec.authors = ["pavel"]
9
+ spec.authors = ["Pavel Kalashnikov"]
10
10
  spec.email = ["kalashnikovisme@gmail.com"]
11
11
  spec.summary = %q{Number To Text Helper}
12
12
  spec.description = %q{Kabal allows you to translate numbers into text.}
@@ -0,0 +1,21 @@
1
+ class Declinations
2
+ def self.name_with_declination(ten_power_name, count)
3
+ if ten_power_name[-1, 1] == "а"
4
+ return ten_power_name if ends_with_one? count
5
+ return ten_power_name[0..4] + "и" if end_with_two_or_three_of_four? count
6
+ ten_power_name[0..4]
7
+ else
8
+ return ten_power_name if ends_with_one? count
9
+ return ten_power_name + "а" if end_with_two_or_three_of_four? count
10
+ ten_power_name + "ов"
11
+ end
12
+ end
13
+
14
+ def self.ends_with_one?(count)
15
+ count.to_s[-1] == "1"
16
+ end
17
+
18
+ def self.end_with_two_or_three_of_four?(count)
19
+ count.to_s[-1] == "2" or count.to_s[-1] == "3" or count.to_s[-1] == "4"
20
+ end
21
+ end
@@ -1,4 +1,5 @@
1
1
  require 'kabal/languages/language'
2
+ require 'kabal/languages/russian/declinations'
2
3
 
3
4
  class Kabal::Russian < Kabal::Language
4
5
  def convert(number)
@@ -50,9 +51,9 @@ class Kabal::Russian < Kabal::Language
50
51
  return names[lang]["ten_powers"][100]
51
52
  end
52
53
  if @number_name.nil?
53
- @number_name = count_name + " " + name_with_declination(names[lang]["ten_powers"][@number_order])
54
+ @number_name = count_name + " " + Declinations.name_with_declination(names[lang]["ten_powers"][@number_order], @count)
54
55
  elsif @count != 0
55
- @number_name += " " + count_name + " " + name_with_declination(names[lang]["ten_powers"][@number_order])
56
+ @number_name += " " + count_name + " " + Declinations.name_with_declination(names[lang]["ten_powers"][@number_order], @count)
56
57
  end
57
58
  ten_powers(number % (10 ** @number_order))
58
59
  end
@@ -61,14 +62,6 @@ class Kabal::Russian < Kabal::Language
61
62
  three_words @count
62
63
  end
63
64
 
64
- def name_with_declination(ten_power_name)
65
- if ten_power_name[-1, 1] == "а"
66
- Russian.p(@count, ten_power_name, ten_power_name[0..4] + "и", ten_power_name[0..4])
67
- else
68
- Russian.p(@count, ten_power_name, ten_power_name + "а", ten_power_name + "ов")
69
- end
70
- end
71
-
72
65
  def number_is_google?
73
66
  @count == 10 and @number_order == 99
74
67
  end
data/lib/kabal/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kabal
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kabal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
- - pavel
7
+ - Pavel Kalashnikov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
@@ -59,6 +59,7 @@ files:
59
59
  - lib/kabal/errors/number_out_range_error.rb
60
60
  - lib/kabal/languages/language.rb
61
61
  - lib/kabal/languages/russian.rb
62
+ - lib/kabal/languages/russian/declinations.rb
62
63
  - lib/kabal/supported_languages.rb
63
64
  - lib/kabal/version.rb
64
65
  - test/lib/kabal/languages/russian_test.rb