speller_dk 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/speller_dk.rb +33 -0
- data/lib/speller_dk/checker.rb +31 -0
- data/lib/speller_dk/error.rb +21 -0
- data/lib/speller_dk/parser.rb +14 -0
- data/lib/speller_dk/spell_error.rb +33 -0
- metadata +49 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9d72d3f86a3b21f436fd4693baa6b78d5d67a9ee
|
4
|
+
data.tar.gz: c32641b1130b01abf3a20daa8e606059260b61e7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 693f8e1a3f80ea5622af015f2d99f0cfc71cb87106b18fd347cb75e186e0261bd3048fbb11f6b2f40835c0100c49eab78975023cd392238207e904667971e3d1
|
7
|
+
data.tar.gz: 493abb13317b294bd91b268e39f1c2efdd7548c6d255de812146550ab6749ab8864b554ca350c77188f7f3e3989d4212e029b7441ebef7e1c58b6986c3514293
|
data/lib/speller_dk.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative 'speller_dk/checker'
|
2
|
+
|
3
|
+
module Speller
|
4
|
+
class Main
|
5
|
+
|
6
|
+
def self.check word
|
7
|
+
puts "------------------------------------------"
|
8
|
+
begin
|
9
|
+
spell_error = Checker.new(word).check_spell
|
10
|
+
if spell_error
|
11
|
+
puts "Была найдена орфографическая ошибка в слове #{ word }"
|
12
|
+
puts "Слова без ошибки:"
|
13
|
+
puts spell_error.s
|
14
|
+
else
|
15
|
+
puts "В данном слове нет ошибок"
|
16
|
+
end
|
17
|
+
rescue Exception => e
|
18
|
+
puts "Приложение было завершено с критической ошибкой"
|
19
|
+
puts e.message
|
20
|
+
end
|
21
|
+
puts "------------------------------------------"
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.help
|
25
|
+
puts "------------------------------------------"
|
26
|
+
puts "Для проверки слова используйте Speller::Main.check '<your_word>' "
|
27
|
+
puts "------------------------------------------"
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
puts Speller::Main.help
|
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
require 'open-uri'
|
3
|
+
|
4
|
+
require_relative "parser"
|
5
|
+
require_relative "spell_error"
|
6
|
+
|
7
|
+
module Speller
|
8
|
+
class Checker
|
9
|
+
|
10
|
+
URL_REQUEST = "http://speller.yandex.net/services/spellservice.json/checkText?lang=en&text="
|
11
|
+
|
12
|
+
def initialize word
|
13
|
+
@word = word
|
14
|
+
end
|
15
|
+
|
16
|
+
def check_spell
|
17
|
+
data = open(full_request).read
|
18
|
+
parse_data = Parser.new(data).data
|
19
|
+
unless parse_data.empty?
|
20
|
+
SpellError.new(parse_data[0])
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def full_request
|
25
|
+
URL_REQUEST + @word
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# p Speller::Checker.new('helo').check_spell
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Speller
|
2
|
+
class Error
|
3
|
+
|
4
|
+
ERROR_UNKNOWN_WORD = 1
|
5
|
+
ERROR_REPEAT_WORD = 2
|
6
|
+
ERROR_CAPITALIZATION = 3
|
7
|
+
ERROR_TOO_MANY_ERRORS = 4
|
8
|
+
|
9
|
+
def self.all
|
10
|
+
{
|
11
|
+
ERROR_UNKNOWN_WORD => "Слова нет в словаре.",
|
12
|
+
ERROR_REPEAT_WORD => "Повтор слова.",
|
13
|
+
ERROR_CAPITALIZATION => "Неверное употребление прописных и строчных букв.",
|
14
|
+
ERROR_TOO_MANY_ERRORS => "Текст содержит слишком много ошибок. При этом приложение может отправить Яндекс.Спеллеру оставшийся непроверенным текст в следующем запросе.",
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# p Speller::Error.all[Speller::Error::ERROR_UNKNOWN_WORD]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "error"
|
2
|
+
|
3
|
+
module Speller
|
4
|
+
class SpellError
|
5
|
+
|
6
|
+
attr_reader :code, :pos, :row, :col, :len, :word, :s
|
7
|
+
|
8
|
+
SPELL_ERROR_CODE = "code"
|
9
|
+
SPELL_ERROR_POS = "pos"
|
10
|
+
SPELL_ERROR_ROW = "row"
|
11
|
+
SPELL_ERROR_COL = "col"
|
12
|
+
SPELL_ERROR_LEN = "len"
|
13
|
+
SPELL_ERROR_WORD = "word"
|
14
|
+
SPELL_ERROR_S = "s"
|
15
|
+
|
16
|
+
def initialize spell
|
17
|
+
@code = spell[SPELL_ERROR_CODE]
|
18
|
+
@pos = spell[SPELL_ERROR_POS]
|
19
|
+
@row = spell[SPELL_ERROR_ROW]
|
20
|
+
@col = spell[SPELL_ERROR_COL]
|
21
|
+
@len = spell[SPELL_ERROR_LEN]
|
22
|
+
@word = spell[SPELL_ERROR_WORD]
|
23
|
+
@s = spell[SPELL_ERROR_S]
|
24
|
+
end
|
25
|
+
|
26
|
+
def error_description
|
27
|
+
Speller::Error.all[@code]
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
|
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: speller_dk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dmitriy Karachentsov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-12-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Simple app for check your word using Yandex.Speller
|
14
|
+
email:
|
15
|
+
- d.karachentsov@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/speller_dk.rb
|
21
|
+
- lib/speller_dk/checker.rb
|
22
|
+
- lib/speller_dk/error.rb
|
23
|
+
- lib/speller_dk/parser.rb
|
24
|
+
- lib/speller_dk/spell_error.rb
|
25
|
+
homepage: https://rubygems.org/gems/speller_dk
|
26
|
+
licenses:
|
27
|
+
- MIT
|
28
|
+
metadata: {}
|
29
|
+
post_install_message:
|
30
|
+
rdoc_options: []
|
31
|
+
require_paths:
|
32
|
+
- lib
|
33
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ">="
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
requirements: []
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 2.5.1
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: Simple speller for check word.
|
49
|
+
test_files: []
|