kabal 0.2.0 → 0.2.1

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: c101bb50f76d3c3bfff154c5e420b69a2558e81a
4
- data.tar.gz: 636f8f442b6b45c8f22ab111c465db1b1c1c760d
3
+ metadata.gz: 8222532ce70bc4277e557311bb3b92c789211a20
4
+ data.tar.gz: 0a3dfce8f30ec6db359a022cfe22c360f97cfb0f
5
5
  SHA512:
6
- metadata.gz: d4a8e658b4c4f17f7c53348ef7510ef92297827976c341ab599733b1753560032b05fde56179fe0414088f3bd2c3f6275c6b5f16b88a228eff0682cc884849a3
7
- data.tar.gz: 21377db86be3a7c956af37b0bd79163d206ca5a9011c732d2c3e7fc5fb72eeb22a15a0c9f97c8ad46f5855f6487ef5b91181122bcfb50322579bd600139c10c1
6
+ metadata.gz: f8f45ed8a597586f73eb2fbc7b7d4d14dc0260a3d2e44b0e857b67b57e8c0832a5337804719fb4d3043d4de7e8f2285bd8d3b508e2236890a61965329a14e141
7
+ data.tar.gz: 60593e22d43fb7bccb32d0de52f5a1e8d6069f0bdca06f5db7782e588b5d5c1e24a8cd447f3c61f6e09546bd44f657ac45474d801996c13e0399b4f84abda332
data/.gitignore CHANGED
@@ -21,3 +21,4 @@ tmp
21
21
  *.a
22
22
  mkmf.log
23
23
  *.swp
24
+ *.swo
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/kalashnikovisme/kabal.svg?branch=master)](https://travis-ci.org/kalashnikovisme/kabal)
4
4
  [![Coverage Status](https://coveralls.io/repos/kalashnikovisme/kabal/badge.png?branch=master)](https://coveralls.io/r/kalashnikovisme/kabal?branch=master)
5
+ [![Inline docs](http://inch-pages.github.io/github/kalashnikovisme/kabal.png)](http://inch-pages.github.io/github/kalashnikovisme/kabal)
5
6
  [![Gem Version](https://badge.fury.io/rb/kabal.svg)](http://badge.fury.io/rb/kabal)
6
7
  [![endorse](https://api.coderwall.com/kalashnikovisme/endorsecount.png)](https://coderwall.com/kalashnikovisme)
7
8
  [![Dependency Status](https://gemnasium.com/kalashnikovisme/kabal.svg)](https://gemnasium.com/kalashnikovisme/kabal)
@@ -41,12 +42,17 @@ You can choose language to "converting".
41
42
  Supported Languages:
42
43
 
43
44
  * Russian
45
+ * Natural Numbers
46
+ * Fractional Numbers
47
+ * Negative Numbers
48
+ * English
49
+ * Natural Numbers
44
50
 
45
51
  *More languages will be added later.*
46
52
 
47
53
  You can see actual list of supported languages:
48
54
 
49
- $> Kabal.supported_languages #=> ["Russian"]
55
+ $> Kabal.supported_languages #=> ["Russian", "English"]
50
56
 
51
57
  ## Contributing
52
58
 
@@ -79,9 +85,19 @@ To add Elfin language you should:
79
85
  minus: #Minus on Elfin Language#
80
86
  ```
81
87
  4. Add `Elfin: "el"` to `yaml/languages.yml`.
82
- 5. Add `require "kabal/languages/elfin"` to `lib/kabal/supported_languages.rb`.
88
+ 5. Add `el: natural: min: {min_of_your_realization}" max: {max_of_your_realization} fractional: symbols: {count_of_symbols_after_dot_that_you_realized}` to `yaml/support.yml`
89
+ 6. Add `require "kabal/languages/elfin"` to `lib/kabal/supported_languages.rb`.
83
90
 
84
91
  ## Testing
85
92
 
86
93
  Kabal has the BigTest. This test checks the correctness of the operation with all the numbers (0 to 10,000) in all supported languages.
87
- Be careful: BigTest working with 10 001 numbers on one languages during around 3 minutes.
94
+ Be careful: BigTest now working around 6 minutes.
95
+ Run BigTest
96
+
97
+ $> tconsole bigtest
98
+
99
+ Relax!
100
+
101
+ $> tconsole all
102
+
103
+ runs all tests without Bigtest.
data/kabal.gemspec CHANGED
@@ -10,10 +10,13 @@ Gem::Specification.new do |spec|
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.}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/kalashnikovisme/kabal"
14
14
  spec.license = "MIT"
15
+ spec.required_ruby_version = '>= 2.0.0'
16
+ spec.metadata = { "issue_tracker" => "https://github.com/kalashnikovisme/kabal/issues" }
15
17
 
16
18
  spec.files = `git ls-files`.split("\n")
19
+ spec.post_install_message = "See documentation of Kabal on https://github.com/kalashnikovisme/kabal"
17
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
22
  spec.require_paths = ["lib"]
@@ -0,0 +1,5 @@
1
+ class Kabal::Errors::NoSupportForFractionalNumberOnCurrentLanguages < StandardError
2
+ def self.message
3
+ "Current language doesn't support fractional numbers"
4
+ end
5
+ end
data/lib/kabal/errors.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  module Kabal::Errors
2
2
  require "kabal/errors/no_language_support_error"
3
3
  require "kabal/errors/number_out_range_error"
4
+ require "kabal/errors/no_support_for_fractional_numbers_on_current_language_error"
4
5
  end
@@ -2,7 +2,7 @@ require 'kabal/languages/language'
2
2
 
3
3
  class Kabal::English < Kabal::Language
4
4
  def convert(number)
5
- raise NumberOutRangeError.message if number < 0 or number >= 10 ** 12
5
+ raise NumberOutRangeError.message if number < 0 or number >= 10 ** 12 or number % 1 != 0
6
6
  return single number if number >= 0 and number <= 19
7
7
  return two_words number if number >= 0 and number <= 99
8
8
  return three_words number if number >= 100 and number <= 999
@@ -5,6 +5,18 @@ module Kabal
5
5
  @lang = languages[self.to_s.split(":")[-2]]
6
6
  end
7
7
 
8
+ def supports_natural?
9
+ supports = YamlLoader.yaml_object "support"
10
+ supports["support"][lang]["natural"]
11
+ end
12
+
13
+ #TODO реализовать метод supports_negative?
14
+
15
+ def supports_fractional?
16
+ supports = YamlLoader.yaml_object "support"
17
+ supports["support"][lang]["fractional"]
18
+ end
19
+
8
20
  def names
9
21
  YamlLoader.yaml_object "languages/#{lang}"
10
22
  end
@@ -12,5 +24,17 @@ module Kabal
12
24
  def minus
13
25
  YamlLoader.yaml_object("languages/#{lang}")[lang]["minus"]
14
26
  end
27
+
28
+ def whole
29
+ YamlLoader.yaml_object("languages/#{lang}")[lang]["whole"]
30
+ end
31
+
32
+ def natural?(number)
33
+ number % 1 == 0
34
+ end
35
+
36
+ def fractional?(number)
37
+ number % 1 != 0
38
+ end
15
39
  end
16
40
  end
@@ -1,22 +1,34 @@
1
- class Declinations
2
- def self.name_with_declination(ten_power_name, count)
3
- #FIXME add gem russian
4
- if ten_power_name[-1, 1] == "а"
5
- return ten_power_name if ends_with_one? count
6
- return ten_power_name[0..4] + "и" if end_with_two_or_three_of_four? count
7
- ten_power_name[0..4]
8
- else
9
- return ten_power_name if ends_with_one? count
10
- return ten_power_name + "а" if end_with_two_or_three_of_four? count
11
- ten_power_name + "ов"
12
- end
13
- end
1
+ module Kabal
2
+ module RussianRules
3
+ module Declinations
4
+ def self.name_with_declination(number_name, count)
5
+ #for 5.0e-11 like numbers
6
+ #FIXME find another way to convert number from exp form
7
+ if count.to_s.include? "e"
8
+ count = count.to_s.split('.')[0].to_i
9
+ end
10
+ #FIXME add gem russian
11
+ if number_name[-1, 1] == "а"
12
+ return number_name if ends_with_one? count
13
+ return number_name[0..4] + "и" if end_with_two_or_three_of_four? count
14
+ number_name[0..4]
15
+ elsif number_name[-1, 1] == "я"
16
+ return number_name if ends_with_one? count
17
+ number_name[0..-3] + "ых"
18
+ else
19
+ return number_name if ends_with_one? count
20
+ return number_name + "а" if end_with_two_or_three_of_four? count
21
+ number_name + "ов"
22
+ end
23
+ end
14
24
 
15
- def self.ends_with_one?(count)
16
- count.to_s[-1] == "1"
17
- end
25
+ def self.ends_with_one?(count)
26
+ count.to_s[-1] == "1"
27
+ end
18
28
 
19
- def self.end_with_two_or_three_of_four?(count)
20
- count.to_s[-1] == "2" or count.to_s[-1] == "3" or count.to_s[-1] == "4"
29
+ def self.end_with_two_or_three_of_four?(count)
30
+ count.to_s[-1] == "2" or count.to_s[-1] == "3" or count.to_s[-1] == "4"
31
+ end
32
+ end
21
33
  end
22
34
  end
@@ -0,0 +1,36 @@
1
+ module Kabal
2
+ module RussianRules
3
+ module FractionalNumbers
4
+ def fractional_number_name(number)
5
+ whole_part_name(number) + " " + fractional_part_name(number)
6
+ end
7
+
8
+ def fractional_ten_powers_name(number)
9
+ ten_powers_name = ""
10
+ if need_pre_word? number
11
+ ten_powers_name = names[lang]["fractional_pre_words"][fractional_number_order(number) % 3] + names[lang]["fractional_ten_powers"][fractional_number_order(number) - (fractional_number_order(number) % 3)]
12
+ else
13
+ ten_powers_name = names[lang]["fractional_ten_powers"][fractional_number_order(number)]
14
+ end
15
+ end
16
+
17
+ def need_pre_word?(number)
18
+ fractional_number_order(number) > 3 and fractional_number_order(number) % 3 != 0
19
+ end
20
+
21
+ def fractional_number_order(number)
22
+ number.to_s.split('.')[1].length
23
+ end
24
+
25
+ def fractional_part_name(number)
26
+ fractional_part = (number % 1).round(fractional_number_order(number))
27
+ feminine_natural_number_name(((fractional_part) * (10 ** fractional_number_order(number))).to_s.split('.')[0].to_i) + " " + Declinations.name_with_declination(fractional_ten_powers_name(number), fractional_part)
28
+ end
29
+
30
+ def whole_part_name(number)
31
+ count = number.to_s.split('.')[0].to_i
32
+ feminine_natural_number_name(count) + " " + Declinations.name_with_declination(whole, count)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,83 @@
1
+ module Kabal
2
+ module RussianRules
3
+ module NaturalNumbers
4
+ def natural_number_name(number)
5
+ #FIXME switch case next lines
6
+ return single(number) if number >= 0 and number <= 19
7
+ return two_words(number) if number >= 20 and number <= 99
8
+ return three_words(number) if number >= 100 and number <= 999
9
+ ten_powers(number) if number >= 1000
10
+ end
11
+
12
+ def feminine_natural_number_name(number)
13
+ @feminine_name = true
14
+ natural_number_name number
15
+ end
16
+
17
+ def single(number)
18
+ if @feminine_name
19
+ @feminine_name = false
20
+ return names[lang]["single_feminine"][count(number) % 10] if count(number) % 10 == 1 or count(number) % 10 == 2
21
+ end
22
+ names[lang]["single"][number]
23
+ end
24
+
25
+ def two_words(number)
26
+ return single number if number <= 19
27
+ number_name = names[lang]["two_words"][number / 10]
28
+ number_name += " " + single(number % 10) if (number % 10 != 0)
29
+ number_name
30
+ end
31
+
32
+ def three_words(number)
33
+ return two_words number if number / 100 == 0
34
+ number_name = names[lang]["three_words"][number / 100]
35
+ return number_name += " " + two_words(number % 100) if (number % 100 >= 20)
36
+ return number_name += " " + single(number % 100) if (number % 100 != 0)
37
+ number_name
38
+ end
39
+ def ten_powers(number)
40
+ #FIXME find better way
41
+ return names[lang]["ten_powers"][100] if number_is_google? number
42
+ less_thousands number if number_is_thousands? number
43
+ return @number_name if number_is_thousands? number
44
+ create_number_name number
45
+ ten_powers(number % (10 ** number_order(number)))
46
+ end
47
+
48
+ def number_order(number)
49
+ ((number.to_s.length - 1) / 3) * 3
50
+ end
51
+
52
+ def count(number)
53
+ number / (10 ** number_order(number))
54
+ end
55
+
56
+ def create_number_name(number)
57
+ if @number_name.nil?
58
+ @number_name = count_name(number) + " " + Declinations.name_with_declination(names[lang]["ten_powers"][number_order(number)], count(number))
59
+ elsif count(number) != 0
60
+ @number_name += " " + count_name(number) + " " + Declinations.name_with_declination(names[lang]["ten_powers"][number_order(number)], count(number))
61
+ end
62
+ end
63
+
64
+ def less_thousands(number)
65
+ @number_name += " " + three_words(number % 1000) unless number == 0
66
+ end
67
+
68
+ def number_is_thousands?(number)
69
+ number_order(number) < 3
70
+ end
71
+
72
+ def count_name(number)
73
+ #FIXME number.to_S[-4] not good
74
+ @feminine_name = (number.to_s[-4] == "1" or number.to_s[-4] == "2") and count(number) and count(number) / 10 != 1 and number_order(number) == 3
75
+ three_words count(number)
76
+ end
77
+
78
+ def number_is_google?(number)
79
+ count(number) == 10 and number_order(number) == 99
80
+ end
81
+ end
82
+ end
83
+ end
@@ -1,90 +1,26 @@
1
1
  require 'kabal/languages/language'
2
2
  require 'kabal/languages/russian/declinations'
3
+ require 'kabal/languages/russian/natural_numbers'
4
+ require 'kabal/languages/russian/fractional_numbers'
3
5
 
4
6
  class Kabal::Russian < Kabal::Language
7
+ include Kabal::RussianRules::NaturalNumbers
8
+ include Kabal::RussianRules::FractionalNumbers
9
+
5
10
  def convert(number)
6
11
  #FIXME find way to get min and max from yml file
7
12
  raise NumberOutRangeError.message if number <= -(10 ** 102) or number >= 10 ** 102
8
13
  #FIXME find better way
9
14
  @number_name = nil
10
- need_minus?(number) ? (minus + " " + natural_number_name(-number)) : natural_number_name(number)
15
+ need_minus?(number) ? (minus + " " + number_words(-number)) : number_words(number)
11
16
  end
12
17
 
13
- def natural_number_name(number)
14
- #FIXME switch case next lines
15
- return single(number) if number >= 0 and number <= 19
16
- return two_words(number) if number >= 20 and number <= 99
17
- return three_words(number) if number >= 100 and number <= 999
18
- ten_powers(number) if number >= 1000
18
+ def number_words(number)
19
+ return natural_number_name number.round if natural? number
20
+ fractional_number_name number if fractional? number
19
21
  end
20
22
 
21
23
  def need_minus?(number)
22
24
  number < 0
23
25
  end
24
-
25
- def single(number)
26
- if @feminine_name_for_thousands
27
- @feminine_name_for_thousands = false
28
- return names[lang]["single_feminine"][count(number) % 10]
29
- end
30
- names[lang]["single"][number]
31
- end
32
-
33
- def two_words(number)
34
- return single number if number <= 19
35
- number_name = names[lang]["two_words"][number / 10]
36
- number_name += " " + single(number % 10) if (number % 10 != 0)
37
- number_name
38
- end
39
-
40
- def three_words(number)
41
- return two_words number if number / 100 == 0
42
- number_name = names[lang]["three_words"][number / 100]
43
- return number_name += " " + two_words(number % 100) if (number % 100 >= 20)
44
- return number_name += " " + single(number % 100) if (number % 100 != 0)
45
- number_name
46
- end
47
-
48
- def ten_powers(number)
49
- #FIXME find better way
50
- return names[lang]["ten_powers"][100] if number_is_google? number
51
- less_thousands number if number_is_thousands? number
52
- return @number_name if number_is_thousands? number
53
- create_number_name number
54
- ten_powers(number % (10 ** number_order(number)))
55
- end
56
-
57
- def number_order(number)
58
- ((number.to_s.length - 1) / 3) * 3
59
- end
60
-
61
- def count(number)
62
- number / (10 ** number_order(number))
63
- end
64
-
65
- def create_number_name(number)
66
- if @number_name.nil?
67
- @number_name = count_name(number) + " " + Declinations.name_with_declination(names[lang]["ten_powers"][number_order(number)], count(number))
68
- elsif count(number) != 0
69
- @number_name += " " + count_name(number) + " " + Declinations.name_with_declination(names[lang]["ten_powers"][number_order(number)], count(number))
70
- end
71
- end
72
-
73
- def less_thousands(number)
74
- @number_name += " " + three_words(number % 1000) unless number == 0
75
- end
76
-
77
- def number_is_thousands?(number)
78
- number_order(number) < 3
79
- end
80
-
81
- def count_name(number)
82
- #FIXME number.to_S[-4] not good
83
- @feminine_name_for_thousands = (number.to_s[-4] == "1" or number.to_s[-4] == "2") and count(number) and count(number) / 10 != 1 and number_order(number) == 3
84
- three_words count(number)
85
- end
86
-
87
- def number_is_google?(number)
88
- count(number) == 10 and number_order(number) == 99
89
- end
90
26
  end
data/lib/kabal/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kabal
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/kabal.rb CHANGED
@@ -10,8 +10,7 @@ module Kabal
10
10
  include Config
11
11
 
12
12
  def to_text(number)
13
- @language ||= "Russian"
14
- obj = Object.const_get("Kabal::" + @language).new
13
+ obj = Object.const_get("Kabal::" + current_language).new
15
14
  obj.convert number
16
15
  end
17
16
 
@@ -36,10 +35,21 @@ module Kabal
36
35
 
37
36
  def current_language
38
37
  @language ||= "Russian"
38
+ @language
39
39
  end
40
40
 
41
41
  def supported_languages
42
42
  languages = YamlLoader.yaml_object "languages"
43
43
  languages.keys
44
44
  end
45
+
46
+ def current_language_supports_natural?
47
+ obj = Object.const_get("Kabal::" + current_language).new
48
+ obj.supports_natural?
49
+ end
50
+
51
+ def current_language_supports_fractional?
52
+ obj = Object.const_get("Kabal::" + current_language).new
53
+ obj.supports_fractional?
54
+ end
45
55
  end
data/test/lib/bigtest.rb CHANGED
@@ -3,11 +3,24 @@ require "test_helper"
3
3
  include Kabal
4
4
 
5
5
  class BigTest < TestCase
6
- def test_all_numbers_for_all_languages
6
+ def test_all_natural_numbers_for_all_languages
7
7
  Kabal.supported_languages.each do |lang|
8
8
  Kabal.language = lang
9
9
  (0..10 ** 4).each do |number|
10
- assert Kabal.to_text number
10
+ assert Kabal.to_text(number), [lang, number].to_s
11
+ end
12
+ end
13
+ end
14
+
15
+ def test_all_fractional_numbers_in_all_languages
16
+ Kabal.supported_languages.each do |lang|
17
+ Kabal.language = lang
18
+ if Kabal.current_language_supports_fractional?
19
+ i = 0
20
+ while i < 10 do
21
+ assert Kabal.to_text(i), [lang, i].to_s
22
+ i = (i + 0.001).round 3
23
+ end
11
24
  end
12
25
  end
13
26
  end
@@ -51,4 +51,19 @@ class RussianTest < TestCase
51
51
  end
52
52
  assert_equal NumberOutRangeError.message, exception.message
53
53
  end
54
+ def test_to_text_with_fractional_number_with_zero
55
+ assert_equal @rus.convert(0.01), "ноль целых одна сотая"
56
+ end
57
+ def test_to_text_with_fractional_number
58
+ assert_equal @rus.convert(1.05), "одна целая пять сотых"
59
+ end
60
+ def test_to_text_with_fractional_number_like_whole
61
+ assert_equal @rus.convert(1.0), "один"
62
+ end
63
+ def test_to_text_with_fractional_number_with_preword
64
+ assert_equal @rus.convert(1.0005), "одна целая пять десятитысячных"
65
+ end
66
+ def test_to_text_with_fractional_number_with_exp_form
67
+ assert_equal @rus.convert(1.00000000005), "одна целая пять стомиллиардных"
68
+ end
54
69
  end
@@ -39,4 +39,12 @@ class KabalTest < TestCase
39
39
  def test_current_language
40
40
  assert Kabal.current_language
41
41
  end
42
+
43
+ def test_current_language_support_natural?
44
+ assert Kabal.current_language_supports_natural?
45
+ end
46
+
47
+ def test_current_language_support_fractional?
48
+ assert Kabal.current_language_supports_fractional?
49
+ end
42
50
  end
@@ -1,5 +1,6 @@
1
1
  ru:
2
2
  minus: "минус"
3
+ whole: "целая"
3
4
  single:
4
5
  0: ноль
5
6
  1: один
@@ -80,3 +81,15 @@ ru:
80
81
  96: антригинтиллион
81
82
  99: дуотригинтиллион
82
83
  100: гугол
84
+ fractional_pre_words:
85
+ 1: десяти
86
+ 2: сто
87
+ fractional_ten_powers:
88
+ 1: десятая
89
+ 2: сотая
90
+ 3: тысячная
91
+ 6: миллионная
92
+ 9: миллиардная
93
+ 12: триллионная
94
+ 15: квадраллионная
95
+ 18: квинтиллионная
data/yaml/support.yml ADDED
@@ -0,0 +1,9 @@
1
+ support:
2
+ ru:
3
+ natural:
4
+ min: "-(10 ** 102)"
5
+ max: "-(10 ** 102)"
6
+ fractional:
7
+ symbols: 16
8
+ en:
9
+ natural: true
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.0
4
+ version: 0.2.1
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-05-03 00:00:00.000000000 Z
11
+ date: 2014-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -59,11 +59,14 @@ files:
59
59
  - lib/kabal/config/yaml_loader.rb
60
60
  - lib/kabal/errors.rb
61
61
  - lib/kabal/errors/no_language_support_error.rb
62
+ - lib/kabal/errors/no_support_for_fractional_numbers_on_current_language_error.rb
62
63
  - lib/kabal/errors/number_out_range_error.rb
63
64
  - lib/kabal/languages/english.rb
64
65
  - lib/kabal/languages/language.rb
65
66
  - lib/kabal/languages/russian.rb
66
67
  - lib/kabal/languages/russian/declinations.rb
68
+ - lib/kabal/languages/russian/fractional_numbers.rb
69
+ - lib/kabal/languages/russian/natural_numbers.rb
67
70
  - lib/kabal/supported_languages.rb
68
71
  - lib/kabal/version.rb
69
72
  - test/lib/bigtest.rb
@@ -74,11 +77,13 @@ files:
74
77
  - yaml/languages.yml
75
78
  - yaml/languages/en.yml
76
79
  - yaml/languages/ru.yml
77
- homepage: ''
80
+ - yaml/support.yml
81
+ homepage: https://github.com/kalashnikovisme/kabal
78
82
  licenses:
79
83
  - MIT
80
- metadata: {}
81
- post_install_message:
84
+ metadata:
85
+ issue_tracker: https://github.com/kalashnikovisme/kabal/issues
86
+ post_install_message: See documentation of Kabal on https://github.com/kalashnikovisme/kabal
82
87
  rdoc_options: []
83
88
  require_paths:
84
89
  - lib
@@ -86,7 +91,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
91
  requirements:
87
92
  - - ">="
88
93
  - !ruby/object:Gem::Version
89
- version: '0'
94
+ version: 2.0.0
90
95
  required_rubygems_version: !ruby/object:Gem::Requirement
91
96
  requirements:
92
97
  - - ">="