kabal 1.1.1 → 1.2.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: 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