speller_dk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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,14 @@
1
+
2
+ require "json"
3
+
4
+ module Speller
5
+ class Parser
6
+
7
+ attr_reader :data
8
+
9
+ def initialize data
10
+ @data = JSON.parse(data)
11
+ end
12
+
13
+ end
14
+ end
@@ -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: []