gbspeller 0.0.1

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: d832c44ed205e381961d7ebb84d72da41560227f
4
+ data.tar.gz: ff18447dc15393dd4d6bb20b9efdf7f678194004
5
+ SHA512:
6
+ metadata.gz: ed6a89647f8d8396109ee77ba75291d0e7bbffbc34ef9ed92e3547c06db371d7b4fb8bd11f36fcedb94ce81534c0d5a8cf8f88ed24b57d4e3b1ffc04476f3dae
7
+ data.tar.gz: a01a2230724340fd5189845384649deb9ebbf3fb52a1b9aad24da2164d7992f7b06df6d0d146490301100ba6942ea4ea3c00cee04d9da8705bfe506beb999a56
@@ -0,0 +1,7 @@
1
+ require_relative 'speller/spell_checker'
2
+
3
+ module Speller
4
+ def self.check text
5
+ puts SpellChecker.new(text)
6
+ end
7
+ end
@@ -0,0 +1,35 @@
1
+ require_relative 'yapi'
2
+
3
+ module Speller
4
+ class SpellChecker
5
+ attr_accessor :errors, :text, :corrections
6
+ def to_s
7
+ print
8
+ end
9
+
10
+ private
11
+
12
+ def initialize(text)
13
+ @errors = YAPI.import text
14
+ @text = text
15
+ @corrections = Hash.new('')
16
+ extract_corrections
17
+ end
18
+
19
+ def print
20
+ %(Feeded text - "#{@text}"
21
+ Contains #{@errors.size} possible errors
22
+ #{print_errors unless @errors.empty?}
23
+ )
24
+ end
25
+
26
+ def print_errors
27
+ result = @errors.map { |error| %(For word "#{error['word']}"" possible corrections are "#{@corrections[error['word']]}") }
28
+ result.join "\n"
29
+ end
30
+
31
+ def extract_corrections
32
+ @errors.each { |error| @corrections[error['word']] = error['s'].join(', ') }
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require 'net/http'
2
+ require 'json'
3
+ module Speller
4
+ module YAPI
5
+ API_URL = 'http://speller.yandex.net/services/spellservice.json'.freeze
6
+ METHOD_NAME = '/checkText?text='.freeze
7
+ URI = API_URL + METHOD_NAME
8
+
9
+ def self.import(text, lang: 'ru, en')
10
+ JSON.parse(Net::HTTP.get urify(text, lang))
11
+ end
12
+
13
+ def self.plusify(text)
14
+ text.gsub(/\s/, '+')
15
+ end
16
+ def self.urify text, lang
17
+ URI(URI + ::URI.encode(plusify(text))+"&lang=#{lang}")
18
+ end
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gbspeller
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - ld34
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-03-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Console Yandex API spellchecker
14
+ email: waterdropfalls@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/speller.rb
20
+ - lib/speller/spell_checker.rb
21
+ - lib/speller/yapi.rb
22
+ homepage:
23
+ licenses: []
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.5.1
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Simple spellchecker
45
+ test_files: []