middleman-spellcheck 0.3 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8f20644e3c44323dd91dac085904b37ce7b6708d
|
4
|
+
data.tar.gz: 228fb426cf5b1d252192658ce2e930c40644def9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f3c2a98e49576566577d81a3baa6cee41f37e9850ec9832fbdd9b68701f5bb798e30bd10c0e9dda5d2302ce8fd3c551aaa13d52e3f127eb86c511dfa7393935
|
7
|
+
data.tar.gz: 3fa0f89b06c19be3d9a61bcd9a5d3d9d88e2096006f538a4c9506d5155c076d4df814fb94382222a92eeb789812a138bd36c1ea8c7ee3a6c40dc9ac4fa23aee0
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
@@ -66,7 +66,7 @@ module Middleman
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def exclude_allowed(results)
|
69
|
-
results.reject { |entry| option_allowed.include? entry[:
|
69
|
+
results.reject { |entry| option_allowed.include? entry[:word].downcase }
|
70
70
|
end
|
71
71
|
|
72
72
|
def option_allowed
|
@@ -79,7 +79,7 @@ module Middleman
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def error_message(misspell)
|
82
|
-
"The word '#{misspell[:
|
82
|
+
"The word '#{misspell[:word]}' is misspelled"
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
@@ -1,10 +1,4 @@
|
|
1
1
|
class Spellchecker
|
2
|
-
require 'net/https'
|
3
|
-
require 'uri'
|
4
|
-
require 'rexml/document'
|
5
|
-
|
6
|
-
ASPELL_WORD_DATA_REGEX = Regexp.new(/\&\s\w+\s\d+\s\d+(.*)$/)
|
7
|
-
|
8
2
|
@@aspell_path = "aspell"
|
9
3
|
|
10
4
|
def self.aspell_path=(path)
|
@@ -15,33 +9,22 @@ class Spellchecker
|
|
15
9
|
@@aspell_path
|
16
10
|
end
|
17
11
|
|
12
|
+
def self.query(text, lang='en')
|
13
|
+
result = `echo "#{text}" | #{@@aspell_path} -a -l #{lang}`
|
14
|
+
raise 'Aspell command not found' unless result
|
15
|
+
result.split("\n")[1..-1]
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.correct?(result_string)
|
19
|
+
result_string == "*"
|
20
|
+
end
|
21
|
+
|
18
22
|
def self.check(text, lang='en')
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
tmp.close
|
23
|
-
spell_check_response = `cat "#{tmp.path}" | #{@@aspell_path} -a -l #{lang}`
|
24
|
-
if spell_check_response == ''
|
25
|
-
raise 'Aspell command not found'
|
26
|
-
elsif text == ''
|
27
|
-
return []
|
28
|
-
else
|
29
|
-
response = text.split(' ').collect { |original| {:original => original} }
|
30
|
-
results = spell_check_response.split("\n").slice(1..-1)
|
31
|
-
result_index = 0
|
32
|
-
response.each_with_index do |word_hash, index|
|
33
|
-
if word_hash[:original] =~ /[a-zA-z\[\]\?]/
|
34
|
-
if results[result_index] =~ ASPELL_WORD_DATA_REGEX
|
35
|
-
response[index].merge!(:correct => false, :suggestions => results[result_index].split(':')[1].strip.split(',').map(&:strip))
|
36
|
-
else
|
37
|
-
response[index].merge!(:correct => true)
|
38
|
-
end
|
39
|
-
result_index += 1
|
40
|
-
else
|
41
|
-
response[index].merge!(:correct => true)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
return response
|
23
|
+
words = text.split(/\W+/)
|
24
|
+
results = query(text, lang).map do |query_result|
|
25
|
+
correct?(query_result)
|
45
26
|
end
|
27
|
+
|
28
|
+
words.zip(results).map {|word, correctness| { word: word, correct: correctness } }
|
46
29
|
end
|
47
30
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require_relative '../../../lib/middleman-spellcheck/spellchecker'
|
3
|
+
|
4
|
+
describe Spellchecker do
|
5
|
+
let(:text) { "hello, world! of txet" }
|
6
|
+
let(:result) { Spellchecker.check(text) }
|
7
|
+
|
8
|
+
it "can spell check words" do
|
9
|
+
result.should == [{ word: "hello", correct: true },
|
10
|
+
{ word: "world", correct: true },
|
11
|
+
{ word: "of", correct: true },
|
12
|
+
{ word: "txet", correct: false }]
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-spellcheck
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Zarea
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman-core
|
@@ -74,6 +74,7 @@ extensions: []
|
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
76
|
- .gitignore
|
77
|
+
- .rspec
|
77
78
|
- Gemfile
|
78
79
|
- LICENSE.txt
|
79
80
|
- README.md
|
@@ -104,6 +105,7 @@ files:
|
|
104
105
|
- lib/middleman-spellcheck/version.rb
|
105
106
|
- lib/middleman_extension.rb
|
106
107
|
- middleman-spellcheck.gemspec
|
108
|
+
- spec/lib/middleman-spellcheck/spellcheck_spec.rb
|
107
109
|
homepage: https://www.github.com/minivan/middleman-spellcheck
|
108
110
|
licenses:
|
109
111
|
- MIT
|
@@ -128,4 +130,5 @@ rubygems_version: 2.1.10
|
|
128
130
|
signing_key:
|
129
131
|
specification_version: 4
|
130
132
|
summary: Run spell checks as a build phase in middleman
|
131
|
-
test_files:
|
133
|
+
test_files:
|
134
|
+
- spec/lib/middleman-spellcheck/spellcheck_spec.rb
|