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 +4 -4
- data/Gemfile +1 -0
- data/README.md +14 -1
- data/generators/add_language.thor +22 -0
- data/generators/generator.rb +8 -0
- data/generators/remove_language.thor +24 -0
- data/generators/templates/language.tt +9 -0
- data/generators/templates/language_test.tt +7 -0
- data/generators/templates/language_yaml.tt +3 -0
- data/lib/kabal/version.rb +1 -1
- data/yaml/languages.yml +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 206c688a5c7e5d9ed2ef414580f06cd24e4e7a3b
|
4
|
+
data.tar.gz: 1880c46b53760568cb629dbf08bc85a812f0bdcb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69735c95f5b1135983c60c68d29f5f6c04f4db686aeeadb9b4663ce5cce748b431a5c60712b6f89bec6a8c57b292c0842efa8f5cc74cee189457a0408d3eb8da
|
7
|
+
data.tar.gz: 0e4c3d38f6175e1397bd630a4497d6c1336726d104c06c269a5d0281e63601b622d459eb259be87fcb691eb54cfec0d8a82fdb17d87b0e122562b46212adc994
|
data/Gemfile
CHANGED
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,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
|
data/lib/kabal/version.rb
CHANGED
data/yaml/languages.yml
CHANGED
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.
|
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-
|
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
|