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.
@@ -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: []