google_spell_checker 0.0.0 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +24 -0
- data/google_spell_checker.gemspec +15 -0
- data/lib/generators/google_spell_checker/config_generator.rb +16 -0
- data/lib/generators/google_spell_checker/templates/google_spell_checker_config.rb +4 -0
- data/lib/google_spell_checker/config.rb +27 -0
- data/lib/google_spell_checker/version.rb +3 -0
- data/lib/google_spell_checker.rb +23 -6
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6637d2b991d84b685bc8d64ceb521640672f3364
|
4
|
+
data.tar.gz: b2224570f1539679694f70954524b28e1f78faa5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 211b76f40429b7b35b1eebada985395cc2c0524e5647d42d726c2fc61b84d53ae79713fdd89e3e3ccd201055ffbabb45d1b9a50eac7a4bd0f25064b1884b0a9e
|
7
|
+
data.tar.gz: 9b4aa6d77e0ec0116d54325c2aa97ea9d82ad9ccd6cbf002a3c0937bae775df9640acadf00c12e82f736161d523e2b421b17ac3962d3fe227f3855433f5ceb91
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
*.gem
|
data/README.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
google_spell_checker
|
2
|
+
====================
|
3
|
+
|
4
|
+
###Intro
|
5
|
+
|
6
|
+
This gem is using google to check word's spelling.
|
7
|
+
|
8
|
+
|
9
|
+
###Installation
|
10
|
+
|
11
|
+
```
|
12
|
+
gem 'google_spell_checker','0.0.0'
|
13
|
+
```
|
14
|
+
|
15
|
+
and run the `bundle` command.
|
16
|
+
|
17
|
+
###Examples
|
18
|
+
|
19
|
+
```
|
20
|
+
GoogleSpellChecker.check 'take m to your heatr'
|
21
|
+
=> "take <em>me</em> to your <em>heart</em>"
|
22
|
+
```
|
23
|
+
|
24
|
+
If there is no incorrect word, it will output void character.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
$:.push File.expand_path("../lib",__FILE__)
|
2
|
+
require 'google_spell_checker/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'google_spell_checker'
|
6
|
+
s.version = GoogleSpellChecker::VERSION
|
7
|
+
s.date = '2014-02-18'
|
8
|
+
s.summary = 'Google spell checker'
|
9
|
+
s.description = 'A simple spell checking gem using google'
|
10
|
+
s.authors = ['Michael Ji']
|
11
|
+
s.email = 'zilong@gmail.com'
|
12
|
+
s.homepage = 'https://github.com/apprentice1988/google_spell_checker.git'
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.require_paths = ['lib']
|
15
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module GoogleSpellChecker
|
2
|
+
module Generators
|
3
|
+
class ConfigGenerator < Rails::Generators::Base
|
4
|
+
source_root File.expand_path(File.join(File.dirname(__FILE__), 'templates'))
|
5
|
+
|
6
|
+
desc <<DESC
|
7
|
+
Description:
|
8
|
+
Copies GoogleSpellChecker configuration file to your application's initializer directory.
|
9
|
+
DESC
|
10
|
+
|
11
|
+
def copy_config_file
|
12
|
+
template 'google_spell_checker_config.rb', 'config/initializers/google_spell_checker_config.rb'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'active_support/configurable'
|
2
|
+
|
3
|
+
module GoogleSpellChecker
|
4
|
+
|
5
|
+
def self.configure(&block)
|
6
|
+
yield @config ||= GoogleSpellChecker::Configuration.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.config
|
10
|
+
@config
|
11
|
+
end
|
12
|
+
|
13
|
+
class Configuration
|
14
|
+
include ActiveSupport::Configurable
|
15
|
+
config_accessor :using_hk
|
16
|
+
config.using_hk = false
|
17
|
+
end
|
18
|
+
|
19
|
+
def param_name
|
20
|
+
config.param_name.respond_to?(:call) ? config.param_name.call : config.param_name
|
21
|
+
end
|
22
|
+
|
23
|
+
# define param_name writer (copied from AS::Configurable)
|
24
|
+
writer, line = 'def param_name=(value); config.param_name = value; end', __LINE__
|
25
|
+
singleton_class.class_eval writer, __FILE__, line
|
26
|
+
class_eval writer, __FILE__, line
|
27
|
+
end
|
data/lib/google_spell_checker.rb
CHANGED
@@ -1,15 +1,32 @@
|
|
1
1
|
#encoding: utf-8
|
2
2
|
require 'net/http'
|
3
|
-
|
4
|
-
|
5
|
-
SPELL_EXP = Regexp.new(/(\s|\w)*<em>(\w)*<\/em\>(\s|\w)*/)
|
6
|
-
|
3
|
+
require 'google_spell_checker/config'
|
4
|
+
module GoogleSpellChecker
|
7
5
|
def self.check content
|
6
|
+
check_using_hk?
|
8
7
|
params = {:q=> content, :oq=> content}
|
9
|
-
uri = URI(
|
8
|
+
uri = URI(@base)
|
10
9
|
uri.query = URI.encode_www_form(params)
|
11
10
|
res = Net::HTTP.get(uri)
|
12
|
-
matches = res.to_enum(:scan
|
11
|
+
matches = res.to_enum(:scan,@regex).map{Regexp.last_match}
|
13
12
|
matches[0,(matches.count/2)].inject(""){|result,match|result + match.to_s}
|
14
13
|
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def self.check_using_hk?
|
18
|
+
if GoogleSpellChecker.config.using_hk
|
19
|
+
@base = "https://www.google.com.hk/search?"
|
20
|
+
@regex = Regexp.new(/(\s|\w)*<em>(\w)*<\/em\>(\s|\w)*/)
|
21
|
+
else
|
22
|
+
@base = "https://www.google.com/search?"
|
23
|
+
@regex = Regexp.new(/(\s|\w)*<b><i>(\w)*<\/i\><\/b\>(\s|\w)*/)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
begin
|
29
|
+
require 'rails'
|
30
|
+
rescue LoadError
|
31
|
+
#do nothing
|
15
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_spell_checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Ji
|
@@ -16,7 +16,14 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
+
- .gitignore
|
20
|
+
- README.md
|
21
|
+
- google_spell_checker.gemspec
|
22
|
+
- lib/generators/google_spell_checker/config_generator.rb
|
23
|
+
- lib/generators/google_spell_checker/templates/google_spell_checker_config.rb
|
19
24
|
- lib/google_spell_checker.rb
|
25
|
+
- lib/google_spell_checker/config.rb
|
26
|
+
- lib/google_spell_checker/version.rb
|
20
27
|
homepage: https://github.com/apprentice1988/google_spell_checker.git
|
21
28
|
licenses: []
|
22
29
|
metadata: {}
|
@@ -36,7 +43,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
36
43
|
version: '0'
|
37
44
|
requirements: []
|
38
45
|
rubyforge_project:
|
39
|
-
rubygems_version: 2.
|
46
|
+
rubygems_version: 2.2.2
|
40
47
|
signing_key:
|
41
48
|
specification_version: 4
|
42
49
|
summary: Google spell checker
|