speller_dk 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/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: []
|