kabal 1.1.1 → 1.2.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: de42c2f8c9a4a48b5284c5bff1d9a14c8dec128d
4
- data.tar.gz: f63a6538118859f2e94eb816fb5b5f1b67d32579
3
+ metadata.gz: 206c688a5c7e5d9ed2ef414580f06cd24e4e7a3b
4
+ data.tar.gz: 1880c46b53760568cb629dbf08bc85a812f0bdcb
5
5
  SHA512:
6
- metadata.gz: 0143ecd953799fe0f72cf1e45731adf3367fa2de62a04456955c6d0cee6c3f2c8317e563b31406392e861b30c8de478b4d0d1f5c074265ef47a60c99e790f2a4
7
- data.tar.gz: 26ba6d489457e9e68371e32ecccad36a798ff216a175c839ebb146b1b3c4643ef5c6a3bb8b93c8e88f8bf24ed5966000158c5809efbbbbc9769cc1fe66a10837
6
+ metadata.gz: 69735c95f5b1135983c60c68d29f5f6c04f4db686aeeadb9b4663ce5cce748b431a5c60712b6f89bec6a8c57b292c0842efa8f5cc74cee189457a0408d3eb8da
7
+ data.tar.gz: 0e4c3d38f6175e1397bd630a4497d6c1336726d104c06c269a5d0281e63601b622d459eb259be87fcb691eb54cfec0d8a82fdb17d87b0e122562b46212adc994
data/Gemfile CHANGED
@@ -9,3 +9,4 @@ gem 'coveralls', require: false
9
9
  gem 'simplecov'
10
10
  gem 'minitest', '4.7.5'
11
11
  gem 'activesupport'
12
+ gem 'thor'
data/README.md CHANGED
@@ -84,7 +84,13 @@ Interfaces:
84
84
 
85
85
  ## How add languages
86
86
 
87
- To add Elfin language you should:
87
+ To add Elfin language you should use language generator:
88
+
89
+ ```shell
90
+ $> cd generators
91
+ $> thor add_language elfin el
92
+ ```
93
+ It will:
88
94
 
89
95
  1. Create `lib/kabal/languages/elfin.rb`. You'll describe rules of this language to drawing numbers there.
90
96
 
@@ -119,6 +125,13 @@ To add Elfin language you should:
119
125
 
120
126
  HINT: Method `Kabal.to_text_in_elfin` will create automatically.
121
127
 
128
+ If you want remove language:
129
+
130
+ ```shell
131
+ $> cd generators
132
+ $> thor remove_language elfin
133
+ ```
134
+
122
135
  ## Testing
123
136
 
124
137
  Kabal has the BigTest. This test checks the correctness of the operation with all the numbers (0 to 10,000) in all supported languages.
@@ -0,0 +1,22 @@
1
+ require "#{File.dirname(__FILE__)}/generator"
2
+
3
+ class AddLanguage < Thor::Group
4
+ include Generator
5
+ include Thor::Actions
6
+
7
+ argument :language_name
8
+ argument :language_abbr
9
+
10
+ def self.source_root
11
+ File.dirname(__FILE__)
12
+ end
13
+
14
+ def generate
15
+ template "#{templates_path}/language.tt", "#{gem_root}/lib/kabal/languages/#{language_name}.rb"
16
+ template "#{templates_path}/language_test.tt", "#{gem_root}/test/lib/kabal/languages/#{language_name}_test.rb"
17
+ template "#{templates_path}/language_yaml.tt", "#{gem_root}/yaml/languages/#{language_abbr}.yml"
18
+ append_to_file "#{gem_root}/yaml/languages.yml", "#{language_name.capitalize}: \"#{language_abbr}\""
19
+ append_to_file "#{gem_root}/yaml/support.yml", " #{language_abbr}:\n natural:\n min: {min_of_your_realization}\n max: {max_of_your_realization}\n fractional:\n symbols: {count_of_symbols_after_dot_that_you_realized}"
20
+ inject_into_file "#{gem_root}/lib/kabal/supported_languages.rb", " require 'kabal/languages/#{language_name}'\n", before: /^ end/
21
+ end
22
+ end
@@ -0,0 +1,8 @@
1
+ module Generator
2
+ def templates_path
3
+ "#{File.dirname(__FILE__)}/templates/"
4
+ end
5
+ def gem_root
6
+ File.dirname(__FILE__).gsub(/generators/, '')
7
+ end
8
+ end
@@ -0,0 +1,24 @@
1
+ require 'active_support/core_ext/hash'
2
+ require "#{File.dirname(__FILE__)}/generator"
3
+
4
+ class RemoveLanguage < Thor::Group
5
+ include Thor::Actions
6
+ include Generator
7
+
8
+ argument :language_name
9
+
10
+ def self.source_root
11
+ File.dirname(__FILE__)
12
+ end
13
+
14
+ def delete
15
+ remove_file "#{gem_root}/lib/kabal/languages/#{language_name}.rb"
16
+ remove_file "#{gem_root}/test/lib/kabal/languages/#{language_name}_test.rb"
17
+ languages = YAML.load_file("#{gem_root}/yaml/languages.yml").with_indifferent_access
18
+ language_abbr = languages[language_name.capitalize]
19
+ remove_file "#{gem_root}/yaml/languages/#{language_abbr}.yml"
20
+ gsub_file "#{gem_root}/yaml/languages.yml", /\n#{language_name.capitalize}: \"#{language_abbr}\"$/, ''
21
+ gsub_file "#{gem_root}/yaml/support.yml", /\n.*#{language_abbr}.*$\n.*$\n.*$\n.*$\n.*$\n.*$/, ''
22
+ gsub_file "#{gem_root}/lib/kabal/supported_languages.rb", /.*#{language_name}.*$\n/, ''
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ require 'kabal/languages/language'
2
+
3
+ module Kabal
4
+ class <%= language_name.capitalize %> < Kabal::Language
5
+ def convert
6
+ #your code here
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class <%= language_name.capitalize %>Test < TestCase
4
+ def setup
5
+ @lang = Kabal::<%= language_name.capitalize %>.new
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ <%= language_abbr %>:
2
+ minus: "minus on <%= language_name.capitalize %>"
3
+ 0: "zero on <%= language_name.capitalize %>"
data/lib/kabal/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kabal
2
- VERSION = '1.1.1'
2
+ VERSION = '1.2.0'
3
3
  end
data/yaml/languages.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  Russian: "ru"
2
2
  English: "en"
3
- Deutsch: "de"
3
+ Deutsch: "de"
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.1.1
4
+ version: 1.2.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-22 00:00:00.000000000 Z
11
+ date: 2014-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -54,6 +54,12 @@ files:
54
54
  - LICENSE.txt
55
55
  - README.md
56
56
  - Rakefile
57
+ - generators/add_language.thor
58
+ - generators/generator.rb
59
+ - generators/remove_language.thor
60
+ - generators/templates/language.tt
61
+ - generators/templates/language_test.tt
62
+ - generators/templates/language_yaml.tt
57
63
  - kabal.gemspec
58
64
  - lib/kabal.rb
59
65
  - lib/kabal/config.rb