romajic 0.1.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 +7 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.rubocop.yml +20 -0
- data/.travis.yml +9 -0
- data/.yardopts +2 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +71 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/default.yml +6 -0
- data/exe/romajic +3 -0
- data/lib/romajic.rb +2 -0
- data/lib/romajic/cli.rb +51 -0
- data/lib/romajic/config.rb +120 -0
- data/lib/romajic/cop.rb +105 -0
- data/lib/romajic/version.rb +3 -0
- data/romajic.gemspec +34 -0
- metadata +234 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: b77eb341e6897d8f5e51bd6a1c380a4c9ae95243
|
|
4
|
+
data.tar.gz: 3f2bca42aed7ea22e08d0d2c09f5570d46556fe5
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 616d6c1538e176df4b9f01e05152670dcb11e2743c4811b73724b5242492ad461d01b85f415ebc8f43a33a611da808514725438e3b93ee1110a235a62f00f2e0
|
|
7
|
+
data.tar.gz: c039283ca877bd0ba472c05f8a457fc0756eb750633b6dd4e0aea0ef4e76453bb0d7220eb124f409e3c553cf4788fdaf15b7a7a0bfcc02c6a88493a67ca721a5
|
data/.coveralls.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
service_name: travis-ci
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Metrics/LineLength:
|
|
2
|
+
Enabled: false
|
|
3
|
+
|
|
4
|
+
Style/ConditionalAssignment:
|
|
5
|
+
Enabled: false
|
|
6
|
+
|
|
7
|
+
Style/EmptyLinesAroundModuleBody:
|
|
8
|
+
Enabled: false
|
|
9
|
+
|
|
10
|
+
Style/MutableConstant:
|
|
11
|
+
Enabled: false
|
|
12
|
+
|
|
13
|
+
Style/PercentLiteralDelimiters:
|
|
14
|
+
Enabled: false
|
|
15
|
+
|
|
16
|
+
Style/RegexpLiteral:
|
|
17
|
+
Enabled: false
|
|
18
|
+
|
|
19
|
+
Style/UnneededPercentQ:
|
|
20
|
+
Enabled: false
|
data/.travis.yml
ADDED
data/.yardopts
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2016 emsk
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Romajic
|
|
2
|
+
|
|
3
|
+
[](https://travis-ci.org/emsk/romajic)
|
|
4
|
+
[](https://coveralls.io/github/emsk/romajic)
|
|
5
|
+
[](https://codeclimate.com/github/emsk/romajic)
|
|
6
|
+
[](https://gemnasium.com/emsk/romajic)
|
|
7
|
+
[](http://inch-ci.org/github/emsk/romajic)
|
|
8
|
+
[](LICENSE.txt)
|
|
9
|
+
|
|
10
|
+
Automatic romaji spelling checker for programmer.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
Add this line to your application's Gemfile:
|
|
15
|
+
|
|
16
|
+
```ruby
|
|
17
|
+
gem 'romajic'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
And then execute:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
$ bundle
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Or install it yourself as:
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
$ gem install romajic
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Usage
|
|
33
|
+
|
|
34
|
+
Give hiragana text:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
$ romajic search すし
|
|
38
|
+
SUSI -> sushi @ /usr/local/src/Example.java:5
|
|
39
|
+
sushiya -> sushi @ /usr/local/src/example.txt:2
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Give romaji text:
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
$ romajic search sushi
|
|
46
|
+
SUSI -> sushi @ /usr/local/src/Example.java:5
|
|
47
|
+
sushiya -> sushi @ /usr/local/src/example.txt:2
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Command Options
|
|
51
|
+
|
|
52
|
+
| Option | Description |
|
|
53
|
+
| :----- | :---------- |
|
|
54
|
+
| `-e/--exclude-word` | Word to exclude. |
|
|
55
|
+
| `-c/--config` | Path of configuration file. |
|
|
56
|
+
| `-d/--dir` | Path of target directory. |
|
|
57
|
+
| `-E/--extensions` | Comma-separated target extensions. |
|
|
58
|
+
| `-D/--distance` | Levenshtein distance. |
|
|
59
|
+
| `-C/--converter` | Romaji converter, such as `hepburn`, `modified_hepburn`, `traditional_hepburn`, `nihon`, or `kunrei`. |
|
|
60
|
+
|
|
61
|
+
## Contributing
|
|
62
|
+
|
|
63
|
+
1. Fork it ( https://github.com/emsk/romajic/fork )
|
|
64
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
65
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
66
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
67
|
+
5. Create a new Pull Request
|
|
68
|
+
|
|
69
|
+
## License
|
|
70
|
+
|
|
71
|
+
[MIT](LICENSE.txt)
|
data/Rakefile
ADDED
data/bin/console
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'romajic'
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require 'pry'
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
require 'irb'
|
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/default.yml
ADDED
data/exe/romajic
ADDED
data/lib/romajic.rb
ADDED
data/lib/romajic/cli.rb
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require 'thor'
|
|
2
|
+
require 'romajic/cop'
|
|
3
|
+
|
|
4
|
+
# Automatic romaji spelling checker
|
|
5
|
+
module Romajic
|
|
6
|
+
|
|
7
|
+
# Command-line interface of {Romajic}
|
|
8
|
+
class CLI < Thor
|
|
9
|
+
desc 'search WORD', 'Search romaji'
|
|
10
|
+
option :exclude_word, type: :string, aliases: '-e', banner: 'WORD TO EXCLUDE'
|
|
11
|
+
option :config, type: :string, aliases: '-c', banner: 'PATH OF THE CONFIGURATION FILE'
|
|
12
|
+
option :dir, type: :string, aliases: '-d', banner: 'PATH OF TARGET DIRECTORY'
|
|
13
|
+
option :extensions, type: :string, aliases: '-E', banner: 'COMMA-SEPARATED TARGET EXTENSIONS'
|
|
14
|
+
option :distance, type: :numeric, aliases: '-D', banner: 'LEVENSHTEIN DISTANCE'
|
|
15
|
+
option :converter, type: :string, aliases: '-C', banner: 'ROMAJI CONVERTER, e.g. hepburn, modified_hepburn, traditional_hepburn, nihon, or kunrei'
|
|
16
|
+
|
|
17
|
+
# Search romaji in the source files
|
|
18
|
+
#
|
|
19
|
+
# @param word [String] Target romaji
|
|
20
|
+
def search(word = nil)
|
|
21
|
+
cop_options = {}
|
|
22
|
+
|
|
23
|
+
cop_options[:word] = word if word
|
|
24
|
+
cop_options[:exclude_word] = options[:exclude_word] if options[:exclude_word]
|
|
25
|
+
|
|
26
|
+
if options[:config]
|
|
27
|
+
cop_options[:config] = File.expand_path(options[:config])
|
|
28
|
+
else
|
|
29
|
+
cop_options[:config] = File.expand_path('../../../default.yml', __FILE__)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
cop_options[:dir] = options[:dir] if options[:dir]
|
|
33
|
+
cop_options[:extensions] = options[:extensions] if options[:extensions]
|
|
34
|
+
cop_options[:distance] = options[:distance] if options[:distance]
|
|
35
|
+
cop_options[:converter] = options[:converter] if options[:converter]
|
|
36
|
+
|
|
37
|
+
cop = Cop.new(cop_options)
|
|
38
|
+
cop.search
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
desc '-v, --version', 'Print the version'
|
|
42
|
+
map %w(-v --version) => :version
|
|
43
|
+
|
|
44
|
+
# Print the version
|
|
45
|
+
def version
|
|
46
|
+
puts "romajic #{Romajic::VERSION}"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
CLI.start
|
|
51
|
+
end
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
require 'yaml'
|
|
2
|
+
require 'romajify/converter'
|
|
3
|
+
|
|
4
|
+
module Romajic
|
|
5
|
+
|
|
6
|
+
# Configurations for {Cop}
|
|
7
|
+
class Config
|
|
8
|
+
HEPBURN_CONVERTERS = %w(hepburn modified_hepburn traditional_hepburn)
|
|
9
|
+
ALLOWED_CONVERTERS = %w(hepburn nihon kunrei)
|
|
10
|
+
|
|
11
|
+
attr_reader :target_words, :exclude_words, :distance
|
|
12
|
+
|
|
13
|
+
# Initialize a new Config object
|
|
14
|
+
#
|
|
15
|
+
# @param options [Hash] Initialize options
|
|
16
|
+
# @option options [String] :word Target romaji
|
|
17
|
+
# @option options [String] :exclude_word Word to exclude
|
|
18
|
+
# @option options [String] :config Path of the configuration file
|
|
19
|
+
# @option options [String] :dir Path of target directory
|
|
20
|
+
# @option options [String] :extensions Comma-separated target extensions
|
|
21
|
+
# @option options [Integer] :distance Levenshtein distance
|
|
22
|
+
# @option options [String] :converter Romaji converter
|
|
23
|
+
def initialize(options)
|
|
24
|
+
@options = Marshal.load(Marshal.dump(options))
|
|
25
|
+
set_configs_from_file
|
|
26
|
+
set_converter
|
|
27
|
+
set_target_words
|
|
28
|
+
set_exclude_words
|
|
29
|
+
set_root_dir
|
|
30
|
+
set_extensions
|
|
31
|
+
set_distance
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Get the glob pattern of the search target files
|
|
35
|
+
#
|
|
36
|
+
# @return [String] Glob pattern
|
|
37
|
+
def target_file_pattern
|
|
38
|
+
pattern = "#{@root_dir}/**/*"
|
|
39
|
+
pattern += ".{#{@extensions.join(',')}}" unless @extensions.nil?
|
|
40
|
+
pattern
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Check if a word is the excluded word
|
|
44
|
+
#
|
|
45
|
+
# @param word [String] A word, e.g. class, const
|
|
46
|
+
# @return [Boolean] True if a word is the excluded word
|
|
47
|
+
def exclude_word?(word)
|
|
48
|
+
exclude_words.include?(word)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
def set_configs_from_file
|
|
54
|
+
configs = YAML.load_file(@options[:config])
|
|
55
|
+
@configs = Hash[configs.map { |k, v| [k.to_sym, v] }]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def set_converter
|
|
59
|
+
@converter = @options[:converter] || @configs[:converter] || 'hepburn'
|
|
60
|
+
set_converter_options
|
|
61
|
+
@converter = 'hepburn' if hepburn_converter?
|
|
62
|
+
|
|
63
|
+
raise "No such converter - #{@converter}" unless allowed_converter?
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def set_converter_options
|
|
67
|
+
@converter_options = @converter == 'traditional_hepburn' ? { traditional: true } : {}
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def hepburn_converter?
|
|
71
|
+
HEPBURN_CONVERTERS.include?(@converter)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def allowed_converter?
|
|
75
|
+
ALLOWED_CONVERTERS.include?(@converter)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def set_target_words
|
|
79
|
+
if @options[:word]
|
|
80
|
+
@target_words = [@options[:word]]
|
|
81
|
+
else
|
|
82
|
+
@target_words = @configs[:target_words] || []
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
@target_words.map! do |word|
|
|
86
|
+
word.ascii_only? ? word : Romajify::Converter.public_send(@converter, word, @converter_options)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def set_exclude_words
|
|
91
|
+
if @options[:exclude_word]
|
|
92
|
+
@exclude_words = [@options[:exclude_word]]
|
|
93
|
+
else
|
|
94
|
+
@exclude_words = @configs[:exclude_words] || []
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def set_root_dir
|
|
99
|
+
if @options[:dir]
|
|
100
|
+
@root_dir = File.expand_path(@options[:dir])
|
|
101
|
+
elsif @configs[:root_dir]
|
|
102
|
+
@root_dir = File.expand_path(@configs[:root_dir], File.dirname(@options[:config]))
|
|
103
|
+
else
|
|
104
|
+
@root_dir = File.expand_path('.')
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def set_extensions
|
|
109
|
+
if @options[:extensions]
|
|
110
|
+
@extensions = @options[:extensions].split(',')
|
|
111
|
+
else
|
|
112
|
+
@extensions = @configs[:extensions]
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def set_distance
|
|
117
|
+
@distance = @options[:distance] || @configs[:distance] || 3
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
data/lib/romajic/cop.rb
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
require 'coderay'
|
|
2
|
+
require 'levenshtein'
|
|
3
|
+
require 'romajic/config'
|
|
4
|
+
|
|
5
|
+
module Romajic
|
|
6
|
+
|
|
7
|
+
# Search logic class of {Romajic}
|
|
8
|
+
class Cop
|
|
9
|
+
TARGET_KINDS = CodeRay::TokenKinds.keys
|
|
10
|
+
|
|
11
|
+
# Initialize a new Cop object
|
|
12
|
+
#
|
|
13
|
+
# @param options [Hash] Initialize options
|
|
14
|
+
# @option options [String] :word Target romaji
|
|
15
|
+
# @option options [String] :exclude_word Word to exclude
|
|
16
|
+
# @option options [String] :config Path of the configuration file
|
|
17
|
+
# @option options [String] :dir Path of target directory
|
|
18
|
+
# @option options [String] :extensions Comma-separated target extensions
|
|
19
|
+
# @option options [Integer] :distance Levenshtein distance
|
|
20
|
+
# @option options [String] :converter Romaji converter
|
|
21
|
+
def initialize(options)
|
|
22
|
+
@config = Config.new(options)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Search romaji in the source files
|
|
26
|
+
def search
|
|
27
|
+
Dir.glob(@config.target_file_pattern, File::FNM_CASEFOLD).each do |file_path|
|
|
28
|
+
next if FileTest.directory?(file_path)
|
|
29
|
+
|
|
30
|
+
extension = File.extname(file_path).sub(/^./, '').downcase
|
|
31
|
+
|
|
32
|
+
if extension.empty?
|
|
33
|
+
tokens = CodeRay.scan(File.read(file_path), :txt).tokens
|
|
34
|
+
search_in_plain_text(tokens, file_path)
|
|
35
|
+
else
|
|
36
|
+
tokens = CodeRay.scan(File.read(file_path), extension.to_sym).tokens
|
|
37
|
+
search_in_tokens(tokens, file_path)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
nil
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
|
|
46
|
+
def search_in_tokens(tokens, file_path)
|
|
47
|
+
line_number = 1
|
|
48
|
+
|
|
49
|
+
tokens.each_slice(2) do |token|
|
|
50
|
+
text = token[0]
|
|
51
|
+
kind = token[1]
|
|
52
|
+
line_number += text.count("\n") if text.is_a?(String)
|
|
53
|
+
|
|
54
|
+
next unless target_kind?(kind.to_sym)
|
|
55
|
+
next if @config.exclude_word?(text.to_s)
|
|
56
|
+
|
|
57
|
+
current_word = strip_text(text.to_s)
|
|
58
|
+
|
|
59
|
+
next if current_word.empty?
|
|
60
|
+
|
|
61
|
+
search_in_words(current_word, file_path, line_number)
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def search_in_plain_text(tokens, file_path)
|
|
66
|
+
text = tokens[0]
|
|
67
|
+
|
|
68
|
+
text.each_line.with_index(1) do |line, line_number|
|
|
69
|
+
line.split.each do |word|
|
|
70
|
+
next if @config.exclude_word?(word.to_s)
|
|
71
|
+
|
|
72
|
+
current_word = strip_text(word.to_s)
|
|
73
|
+
|
|
74
|
+
next if current_word.empty?
|
|
75
|
+
|
|
76
|
+
search_in_words(current_word, file_path, line_number)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
def target_kind?(kind)
|
|
82
|
+
TARGET_KINDS.include?(kind)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def strip_text(text)
|
|
86
|
+
text
|
|
87
|
+
.gsub(/\/|\\|\"|\*/, '')
|
|
88
|
+
.gsub(/\s+/, ' ')
|
|
89
|
+
.strip
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def search_in_words(current_word, file_path, line)
|
|
93
|
+
@config.target_words.each do |target_word|
|
|
94
|
+
target_word.downcase!
|
|
95
|
+
next unless similar?(target_word, current_word.downcase)
|
|
96
|
+
puts "#{current_word} -> #{target_word} @ #{file_path}:#{line}"
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def similar?(target, current)
|
|
101
|
+
distance = Levenshtein.distance(target, current)
|
|
102
|
+
1 <= distance && distance <= @config.distance
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
end
|
data/romajic.gemspec
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'romajic/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = 'romajic'
|
|
8
|
+
spec.version = Romajic::VERSION
|
|
9
|
+
spec.authors = ['emsk']
|
|
10
|
+
spec.email = ['emsk1987@gmail.com']
|
|
11
|
+
|
|
12
|
+
spec.summary = %q{Automatic romaji spelling checker.}
|
|
13
|
+
spec.description = %q{Automatic romaji spelling checker. Let's write correct romaji.}
|
|
14
|
+
spec.homepage = 'https://github.com/emsk/romajic'
|
|
15
|
+
spec.license = 'MIT'
|
|
16
|
+
|
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
18
|
+
spec.bindir = 'exe'
|
|
19
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
20
|
+
spec.require_paths = ['lib']
|
|
21
|
+
|
|
22
|
+
spec.add_runtime_dependency 'thor', '~> 0.19'
|
|
23
|
+
spec.add_runtime_dependency 'coderay', '~> 1.1'
|
|
24
|
+
spec.add_runtime_dependency 'levenshtein', '~> 0.2'
|
|
25
|
+
spec.add_runtime_dependency 'romajify', '~> 0.1'
|
|
26
|
+
spec.add_development_dependency 'bundler', '~> 1.11'
|
|
27
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
|
28
|
+
spec.add_development_dependency 'rspec', '~> 3.4'
|
|
29
|
+
spec.add_development_dependency 'simplecov', '~> 0.11'
|
|
30
|
+
spec.add_development_dependency 'coveralls', '~> 0.8'
|
|
31
|
+
spec.add_development_dependency 'yard', '~> 0.8'
|
|
32
|
+
spec.add_development_dependency 'redcarpet', '~> 3.3'
|
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 0.38'
|
|
34
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: romajic
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- emsk
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2016-03-21 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: thor
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '0.19'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '0.19'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: coderay
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '1.1'
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '1.1'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: levenshtein
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '0.2'
|
|
48
|
+
type: :runtime
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0.2'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: romajify
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0.1'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0.1'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: bundler
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '1.11'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '1.11'
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: rake
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '10.0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '10.0'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: rspec
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '3.4'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '3.4'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: simplecov
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0.11'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0.11'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: coveralls
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0.8'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0.8'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: yard
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0.8'
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - "~>"
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0.8'
|
|
153
|
+
- !ruby/object:Gem::Dependency
|
|
154
|
+
name: redcarpet
|
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
|
156
|
+
requirements:
|
|
157
|
+
- - "~>"
|
|
158
|
+
- !ruby/object:Gem::Version
|
|
159
|
+
version: '3.3'
|
|
160
|
+
type: :development
|
|
161
|
+
prerelease: false
|
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '3.3'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: rubocop
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '0.38'
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '0.38'
|
|
181
|
+
description: Automatic romaji spelling checker. Let's write correct romaji.
|
|
182
|
+
email:
|
|
183
|
+
- emsk1987@gmail.com
|
|
184
|
+
executables:
|
|
185
|
+
- romajic
|
|
186
|
+
extensions: []
|
|
187
|
+
extra_rdoc_files: []
|
|
188
|
+
files:
|
|
189
|
+
- ".coveralls.yml"
|
|
190
|
+
- ".gitignore"
|
|
191
|
+
- ".rspec"
|
|
192
|
+
- ".rubocop.yml"
|
|
193
|
+
- ".travis.yml"
|
|
194
|
+
- ".yardopts"
|
|
195
|
+
- Gemfile
|
|
196
|
+
- LICENSE.txt
|
|
197
|
+
- README.md
|
|
198
|
+
- Rakefile
|
|
199
|
+
- bin/console
|
|
200
|
+
- bin/setup
|
|
201
|
+
- default.yml
|
|
202
|
+
- exe/romajic
|
|
203
|
+
- lib/romajic.rb
|
|
204
|
+
- lib/romajic/cli.rb
|
|
205
|
+
- lib/romajic/config.rb
|
|
206
|
+
- lib/romajic/cop.rb
|
|
207
|
+
- lib/romajic/version.rb
|
|
208
|
+
- romajic.gemspec
|
|
209
|
+
homepage: https://github.com/emsk/romajic
|
|
210
|
+
licenses:
|
|
211
|
+
- MIT
|
|
212
|
+
metadata: {}
|
|
213
|
+
post_install_message:
|
|
214
|
+
rdoc_options: []
|
|
215
|
+
require_paths:
|
|
216
|
+
- lib
|
|
217
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
|
+
requirements:
|
|
219
|
+
- - ">="
|
|
220
|
+
- !ruby/object:Gem::Version
|
|
221
|
+
version: '0'
|
|
222
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
|
+
requirements:
|
|
224
|
+
- - ">="
|
|
225
|
+
- !ruby/object:Gem::Version
|
|
226
|
+
version: '0'
|
|
227
|
+
requirements: []
|
|
228
|
+
rubyforge_project:
|
|
229
|
+
rubygems_version: 2.5.1
|
|
230
|
+
signing_key:
|
|
231
|
+
specification_version: 4
|
|
232
|
+
summary: Automatic romaji spelling checker.
|
|
233
|
+
test_files: []
|
|
234
|
+
has_rdoc:
|