yan_speller 1.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.
- checksums.yaml +7 -0
- data/lib/yan_speller/spell_error.rb +18 -0
- data/lib/yan_speller/spell_request.rb +28 -0
- data/lib/yan_speller/speller.rb +32 -0
- data/lib/yan_speller.rb +38 -0
- metadata +49 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2a2aa6f07b620da55af72b861a04dee5403bbefe
|
4
|
+
data.tar.gz: c02206c53a93ae4e931d3fce2317a7423ba8735f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: baf0917cd09707f7db5089e20c97e4bc267b1b7174a5cd93b008899668a5835ed8eed9dfac5533240f2729a2bd3313640be66b6963f060fe14b2e9a2b0402fc3
|
7
|
+
data.tar.gz: 92e1e8ebe5629397f324c9af13eb3c1388a881bb0755a12e328c54555121b42212f0408c7bbc0dcf82148beec691941814d9e086f61286ce5cfb9ee9f08bee21
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module YanSpeller
|
2
|
+
class SpellError
|
3
|
+
|
4
|
+
def initialize err
|
5
|
+
err.each do |key, value|
|
6
|
+
instance_variable_set("@#{key}".to_sym, value)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def to_s
|
11
|
+
"Error in the word <#{@word}>, maybe it is better to say <#{@s}>."
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
# require 'uri'
|
3
|
+
|
4
|
+
module YanSpeller
|
5
|
+
class SpellRequest
|
6
|
+
|
7
|
+
DATA_URL = 'http://speller.yandex.net/services/spellservice.json/checkText'
|
8
|
+
|
9
|
+
attr_reader :success
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@success = false
|
13
|
+
end
|
14
|
+
|
15
|
+
def send text_for_check
|
16
|
+
@success = false
|
17
|
+
uri = URI(DATA_URL)
|
18
|
+
params = { text: text_for_check, ie: 'utf-8' }
|
19
|
+
uri.query = URI.encode_www_form params
|
20
|
+
result = Net::HTTP.get_response(uri)
|
21
|
+
@success = result.is_a? Net::HTTPSuccess
|
22
|
+
result
|
23
|
+
end
|
24
|
+
|
25
|
+
alias success? success
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative 'spell_error'
|
2
|
+
require_relative 'spell_request'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
module YanSpeller
|
6
|
+
class Speller
|
7
|
+
attr_reader :status
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@spell_request = SpellRequest.new
|
11
|
+
@errors = []
|
12
|
+
@status = :request_fail
|
13
|
+
end
|
14
|
+
|
15
|
+
def check_spell text
|
16
|
+
result = @spell_request.send text
|
17
|
+
if @spell_request.success?
|
18
|
+
@errors = JSON.parse(result.body).map do |err|
|
19
|
+
SpellError.new err
|
20
|
+
end
|
21
|
+
@status = @errors.empty? ? :no_spell_errors : :spell_errors
|
22
|
+
else
|
23
|
+
@status = :request_fail
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def errors_to_s
|
28
|
+
@errors.map { |err| err.to_s }
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
data/lib/yan_speller.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require_relative 'yan_speller/speller'
|
2
|
+
|
3
|
+
module YanSpeller
|
4
|
+
|
5
|
+
MAJOR = '1'
|
6
|
+
MINOR = '0'
|
7
|
+
PATCH = '1'
|
8
|
+
|
9
|
+
def self.version
|
10
|
+
|
11
|
+
[ MAJOR, MINOR, PATCH ].join '.'
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.check text
|
16
|
+
speller = Speller.new
|
17
|
+
result = speller.check_spell(text)
|
18
|
+
if result == :no_spell_errors
|
19
|
+
puts 'No errors.It is all good and right.'
|
20
|
+
elsif result == :request_fail
|
21
|
+
puts 'Fail to get an answer.'
|
22
|
+
else
|
23
|
+
puts speller.errors_to_s
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
# First option.
|
30
|
+
|
31
|
+
puts 'Type some text for spell checking:'
|
32
|
+
text = gets.chomp.to_s
|
33
|
+
p YanSpeller::check text
|
34
|
+
|
35
|
+
# Second option.
|
36
|
+
# Comment these tree lines above and use this one below:
|
37
|
+
|
38
|
+
# p YanSpeller::check " " # insert your text between this " quotes "
|
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: yan_speller
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Vlad Alfimov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-02-09 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A simple gem for checking spell that use Yandex.speller service
|
14
|
+
email: francuz006@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/yan_speller.rb
|
20
|
+
- lib/yan_speller/spell_error.rb
|
21
|
+
- lib/yan_speller/spell_request.rb
|
22
|
+
- lib/yan_speller/speller.rb
|
23
|
+
homepage: https://rubygems.org/gems/yan_speller
|
24
|
+
licenses:
|
25
|
+
- MIT
|
26
|
+
metadata: {}
|
27
|
+
post_install_message:
|
28
|
+
rdoc_options: []
|
29
|
+
require_paths:
|
30
|
+
- lib
|
31
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
requirements:
|
42
|
+
- Internet connection
|
43
|
+
- Some text to check
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 2.4.5
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: Check spell of your text.
|
49
|
+
test_files: []
|