rack_spellchecker 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem "raspell"
7
+ gem "rack"
8
+
9
+ # Add dependencies to develop your gem here.
10
+ # Include everything needed to run rake, tests, features, etc.
11
+ group :development do
12
+ gem "rspec", "~> 2.3.0"
13
+ gem "yard", "~> 0.6.0"
14
+ gem "bundler", "~> 1.0.0"
15
+ gem "jeweler", "~> 1.5.2"
16
+ gem "rcov", ">= 0"
17
+ gem "reek", "~> 1.2.8"
18
+ gem "roodi", "~> 2.1.0"
19
+ gem "cucumber", ">= 0"
20
+ gem "capybara"
21
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,90 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ builder (2.1.2)
5
+ capybara (0.4.0)
6
+ celerity (>= 0.7.9)
7
+ culerity (>= 0.2.4)
8
+ mime-types (>= 1.16)
9
+ nokogiri (>= 1.3.3)
10
+ rack (>= 1.0.0)
11
+ rack-test (>= 0.5.4)
12
+ selenium-webdriver (>= 0.0.27)
13
+ xpath (~> 0.1.2)
14
+ celerity (0.8.6)
15
+ childprocess (0.1.6)
16
+ ffi (~> 0.6.3)
17
+ cucumber (0.9.4)
18
+ builder (~> 2.1.2)
19
+ diff-lcs (~> 1.1.2)
20
+ gherkin (~> 2.2.9)
21
+ json (~> 1.4.6)
22
+ term-ansicolor (~> 1.0.5)
23
+ culerity (0.2.13)
24
+ diff-lcs (1.1.2)
25
+ ffi (0.6.3)
26
+ rake (>= 0.8.7)
27
+ gherkin (2.2.9)
28
+ json (~> 1.4.6)
29
+ term-ansicolor (~> 1.0.5)
30
+ git (1.2.5)
31
+ jeweler (1.5.2)
32
+ bundler (~> 1.0.0)
33
+ git (>= 1.2.5)
34
+ rake
35
+ json (1.4.6)
36
+ json_pure (1.4.6)
37
+ mime-types (1.16)
38
+ nokogiri (1.4.3.1)
39
+ rack (1.2.1)
40
+ rack-test (0.5.6)
41
+ rack (>= 1.0)
42
+ rake (0.8.7)
43
+ raspell (1.1)
44
+ rcov (0.9.9)
45
+ reek (1.2.8)
46
+ ruby2ruby (~> 1.2)
47
+ ruby_parser (~> 2.0)
48
+ sexp_processor (~> 3.0)
49
+ roodi (2.1.0)
50
+ ruby_parser
51
+ rspec (2.3.0)
52
+ rspec-core (~> 2.3.0)
53
+ rspec-expectations (~> 2.3.0)
54
+ rspec-mocks (~> 2.3.0)
55
+ rspec-core (2.3.1)
56
+ rspec-expectations (2.3.0)
57
+ diff-lcs (~> 1.1.2)
58
+ rspec-mocks (2.3.0)
59
+ ruby2ruby (1.2.5)
60
+ ruby_parser (~> 2.0)
61
+ sexp_processor (~> 3.0)
62
+ ruby_parser (2.0.5)
63
+ sexp_processor (~> 3.0)
64
+ rubyzip (0.9.4)
65
+ selenium-webdriver (0.1.2)
66
+ childprocess (~> 0.1.5)
67
+ ffi (~> 0.6.3)
68
+ json_pure
69
+ rubyzip
70
+ sexp_processor (3.0.5)
71
+ term-ansicolor (1.0.5)
72
+ xpath (0.1.2)
73
+ nokogiri (~> 1.3)
74
+ yard (0.6.4)
75
+
76
+ PLATFORMS
77
+ ruby
78
+
79
+ DEPENDENCIES
80
+ bundler (~> 1.0.0)
81
+ capybara
82
+ cucumber
83
+ jeweler (~> 1.5.2)
84
+ rack
85
+ raspell
86
+ rcov
87
+ reek (~> 1.2.8)
88
+ roodi (~> 2.1.0)
89
+ rspec (~> 2.3.0)
90
+ yard (~> 0.6.0)
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Dan Pickett
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,35 @@
1
+ = rack_spellchecker
2
+
3
+ A rack app to support TinyMCE spellchecking functionality (https://github.com/tinymce/tinymce_spellchecker_php)
4
+
5
+ Uses ASpell to check text entry and suggest replacement words
6
+
7
+ == Installation
8
+
9
+ To use in your Rails app:
10
+
11
+ * Install/Configure TinyMCE
12
+ * Mount the rack application to TinyMCE's prescribed location (you can configure it via the spellchecker_rpc_url option in tiny_mce) in counfig/routes.rb:
13
+
14
+ match "/spell_checker" => RackSpellChecker::Application.new
15
+
16
+ == Todo
17
+
18
+ * Different/multiple language support
19
+ * route wrapper for easy introduction to a rails app
20
+
21
+ == Contributing to rack_spellchecker
22
+
23
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
24
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
25
+ * Fork the project
26
+ * Start a feature/bugfix branch
27
+ * Commit and push until you are happy with your contribution
28
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
29
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
30
+
31
+ == Copyright
32
+
33
+ Copyright (c) 2011 Dan Pickett. See LICENSE.txt for
34
+ further details.
35
+
data/Rakefile ADDED
@@ -0,0 +1,59 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "rack_spellchecker"
16
+ gem.homepage = "http://github.com/dpickett/rack_spellchecker"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{A rack spellchecker to support TinyMCE spellchecking}
19
+ gem.description = %Q{Spellcheck your text entry with TinyMCE and Rack SpellChecker}
20
+ gem.email = "dpickett@enlightsolutions.com"
21
+ gem.authors = ["Dan Pickett"]
22
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
23
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ require 'rspec/core'
30
+ require 'rspec/core/rake_task'
31
+ RSpec::Core::RakeTask.new(:spec) do |spec|
32
+ spec.pattern = FileList['spec/**/*_spec.rb']
33
+ end
34
+
35
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
36
+ spec.pattern = 'spec/**/*_spec.rb'
37
+ spec.rcov = true
38
+ end
39
+
40
+ require 'reek/rake/task'
41
+ Reek::Rake::Task.new do |t|
42
+ t.fail_on_error = true
43
+ t.verbose = false
44
+ t.source_files = 'lib/**/*.rb'
45
+ end
46
+
47
+ require 'roodi'
48
+ require 'roodi_task'
49
+ RoodiTask.new do |t|
50
+ t.verbose = false
51
+ end
52
+
53
+ require 'cucumber/rake/task'
54
+ Cucumber::Rake::Task.new(:cucumber)
55
+
56
+ task :default => :spec
57
+
58
+ require 'yard'
59
+ YARD::Rake::YardocTask.new
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,17 @@
1
+ Feature: Spell Checking
2
+ As a tinyMCE text editor
3
+ I want to check my text
4
+ So that my post will be spelled correctly
5
+
6
+ Scenario: I perform spell checking with a mispelled word
7
+ Given I have supplied the content 'Sally sells shesells down by the seashore'
8
+ When I do a spellcheck
9
+ Then I should get a response
10
+ And there should be 1 error
11
+
12
+ Scenario: I perform spell checking with perfect spelling
13
+ Given I have supplied the content 'Sally sells seashells down by the seashore'
14
+ When I do a spellcheck
15
+ Then I should get a response
16
+ And there should be 0 errors
17
+
@@ -0,0 +1,26 @@
1
+ Given /^I have entered the word '(.*)'$/ do |word|
2
+ @params = {}
3
+ @params["params"] = ["en"]
4
+ @params["params"] << word
5
+ @params["id"] = "c0"
6
+ end
7
+
8
+ When /^I request possible replacements$/ do
9
+ @params["method"] = "getSuggestions"
10
+ post "/spell_checker", @params.to_json
11
+ @json_hash = JSON.parse(last_response.body)
12
+ @result = @json_hash["result"]
13
+ end
14
+
15
+ Then /^I should get an array of results$/ do
16
+ @result.should be_kind_of(Array)
17
+ end
18
+
19
+ Then /^I should see '(.*)' as a replacement option$/ do |word|
20
+ @result.should include(word)
21
+ end
22
+
23
+ Then /^I should get a position identifier so I can perform a valid replacement$/ do
24
+ @json_hash["id"].should eql(@params["id"])
25
+ end
26
+
@@ -0,0 +1,20 @@
1
+ Given /^I have supplied the content \'(.*)\'$/ do |content|
2
+ @params ||= {}
3
+ @params["params"] ||= ["en"]
4
+ @params["method"] = "checkWords"
5
+ @params["params"] << content.split(" ")
6
+ end
7
+
8
+
9
+ When /^I do a spellcheck$/ do
10
+ post '/spell_checker', @params.to_json
11
+ end
12
+
13
+ Then /^I should get a response$/ do
14
+ last_response.should be_ok
15
+ end
16
+
17
+ Then /^there should be (\d*) errors?$/ do |error_count|
18
+ json_hash = JSON.parse(last_response.body)
19
+ error_count.to_i.should eql(json_hash["result"].size)
20
+ end
@@ -0,0 +1,19 @@
1
+ Feature: Mispelled Replacement Suggestion
2
+ As a TinyMCE text editor
3
+ I want to get replacement suggestions
4
+ So that I can ensure my posts are spelled correctly
5
+
6
+ Scenario: I request replacement suggestions for a mispelled word
7
+ Given I have entered the word 'shesells'
8
+ When I request possible replacements
9
+ Then I should get a response
10
+ And I should get an array of results
11
+ And I should see 'seashells' as a replacement option
12
+ And I should get a position identifier so I can perform a valid replacement
13
+
14
+ Scenario: I request replacement suggestions for a properly spelled word
15
+ Given I have entered the word 'seashells'
16
+ When I request possible replacements
17
+ Then I should get a response
18
+ And I should get an array of results
19
+
@@ -0,0 +1,12 @@
1
+ # require 'capybara'
2
+ # require 'capybara/cucumber'
3
+ # Capybara.app = RackSpellChecker::Application
4
+ require "rack/test"
5
+ module AppSpecification
6
+ def app
7
+ RackSpellChecker::Application.new
8
+ end
9
+ end
10
+
11
+ World(Rack::Test::Methods)
12
+ World(AppSpecification)
@@ -0,0 +1,13 @@
1
+ require 'bundler'
2
+ begin
3
+ Bundler.setup(:default, :development)
4
+ rescue Bundler::BundlerError => e
5
+ $stderr.puts e.message
6
+ $stderr.puts "Run `bundle install` to install missing gems"
7
+ exit e.status_code
8
+ end
9
+
10
+ $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../../lib')
11
+ require 'rack_spellchecker'
12
+
13
+ require 'rspec/expectations'
@@ -0,0 +1,12 @@
1
+ require "json"
2
+
3
+ module RackSpellChecker
4
+ #Rack Application that processes Spell Check requests from TinyMCE
5
+ class Application
6
+ def call(env)
7
+ req = JSON.parse(env["rack.input"].read)
8
+ results = RackSpellChecker::RequestHandler.process(req)
9
+ [200, {"Content-Type" => "text/javascript"}, [results.to_json]]
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,44 @@
1
+ module RackSpellChecker
2
+ #Handles incoming requests from the rack application
3
+ #TinyMCE issues two types of requests: checking for errors and suggesting replacements
4
+ class RequestHandler
5
+ #dispatches the request to a spelling check or alternative suggestion
6
+ #if TinyMCE supplied the method "getSuggestions" it will perform the spelling check
7
+ def self.process(req)
8
+ if req["method"] == "getSuggestions"
9
+ suggest_alternatives_for(req["params"][1], req["id"])
10
+ else
11
+ check(req["params"][1])
12
+ end
13
+ end
14
+
15
+ #checks the content for mispelled words
16
+ def self.check(content)
17
+ bad_words = []
18
+ content.each do |word|
19
+ unless spelling_utility.check(word)
20
+ bad_words << word
21
+ end
22
+ end
23
+
24
+ {
25
+ "id" => nil,
26
+ "error" => nil,
27
+ "result" => bad_words.uniq
28
+ }
29
+ end
30
+
31
+ #suggests alternatives for a mispelled word
32
+ def self.suggest_alternatives_for(word, position_id)
33
+ {
34
+ "id" => position_id,
35
+ "error" => nil,
36
+ "result" => spelling_utility.suggest(word)[0..8]
37
+ }
38
+ end
39
+
40
+ def self.spelling_utility #nodoc
41
+ Aspell.new("en")
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,4 @@
1
+ require "raspell"
2
+
3
+ require "rack_spellchecker/request_handler"
4
+ require "rack_spellchecker/application"
@@ -0,0 +1,94 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rack_spellchecker}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Dan Pickett"]
12
+ s.date = %q{2011-01-06}
13
+ s.description = %q{Spellcheck your text entry with TinyMCE and Rack SpellChecker}
14
+ s.email = %q{dpickett@enlightsolutions.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "features/spell_checking.feature",
29
+ "features/step_definitions/replacement_steps.rb",
30
+ "features/step_definitions/spell_check_steps.rb",
31
+ "features/suggest_replacements.feature",
32
+ "features/support/capybara.rb",
33
+ "features/support/env.rb",
34
+ "lib/rack_spellchecker.rb",
35
+ "lib/rack_spellchecker/application.rb",
36
+ "lib/rack_spellchecker/request_handler.rb",
37
+ "rack_spellchecker.gemspec",
38
+ "spec/rack_spellchecker_spec.rb",
39
+ "spec/spec_helper.rb"
40
+ ]
41
+ s.homepage = %q{http://github.com/dpickett/rack_spellchecker}
42
+ s.licenses = ["MIT"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = %q{1.3.7}
45
+ s.summary = %q{A rack spellchecker to support TinyMCE spellchecking}
46
+ s.test_files = [
47
+ "spec/rack_spellchecker_spec.rb",
48
+ "spec/spec_helper.rb"
49
+ ]
50
+
51
+ if s.respond_to? :specification_version then
52
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
53
+ s.specification_version = 3
54
+
55
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
+ s.add_runtime_dependency(%q<raspell>, [">= 0"])
57
+ s.add_runtime_dependency(%q<rack>, [">= 0"])
58
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
59
+ s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
60
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
61
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
62
+ s.add_development_dependency(%q<rcov>, [">= 0"])
63
+ s.add_development_dependency(%q<reek>, ["~> 1.2.8"])
64
+ s.add_development_dependency(%q<roodi>, ["~> 2.1.0"])
65
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
66
+ s.add_development_dependency(%q<capybara>, [">= 0"])
67
+ else
68
+ s.add_dependency(%q<raspell>, [">= 0"])
69
+ s.add_dependency(%q<rack>, [">= 0"])
70
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
71
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
72
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
73
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
74
+ s.add_dependency(%q<rcov>, [">= 0"])
75
+ s.add_dependency(%q<reek>, ["~> 1.2.8"])
76
+ s.add_dependency(%q<roodi>, ["~> 2.1.0"])
77
+ s.add_dependency(%q<cucumber>, [">= 0"])
78
+ s.add_dependency(%q<capybara>, [">= 0"])
79
+ end
80
+ else
81
+ s.add_dependency(%q<raspell>, [">= 0"])
82
+ s.add_dependency(%q<rack>, [">= 0"])
83
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
84
+ s.add_dependency(%q<yard>, ["~> 0.6.0"])
85
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
86
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
87
+ s.add_dependency(%q<rcov>, [">= 0"])
88
+ s.add_dependency(%q<reek>, ["~> 1.2.8"])
89
+ s.add_dependency(%q<roodi>, ["~> 2.1.0"])
90
+ s.add_dependency(%q<cucumber>, [">= 0"])
91
+ s.add_dependency(%q<capybara>, [">= 0"])
92
+ end
93
+ end
94
+
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "RackSpellchecker" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'rack_spellchecker'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata ADDED
@@ -0,0 +1,253 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack_spellchecker
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Dan Pickett
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-01-06 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ type: :runtime
24
+ name: raspell
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ prerelease: false
37
+ type: :runtime
38
+ name: rack
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
+ requirement: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ prerelease: false
51
+ type: :development
52
+ name: rspec
53
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ hash: 3
59
+ segments:
60
+ - 2
61
+ - 3
62
+ - 0
63
+ version: 2.3.0
64
+ requirement: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ prerelease: false
67
+ type: :development
68
+ name: yard
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 7
75
+ segments:
76
+ - 0
77
+ - 6
78
+ - 0
79
+ version: 0.6.0
80
+ requirement: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ prerelease: false
83
+ type: :development
84
+ name: bundler
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ hash: 23
91
+ segments:
92
+ - 1
93
+ - 0
94
+ - 0
95
+ version: 1.0.0
96
+ requirement: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ prerelease: false
99
+ type: :development
100
+ name: jeweler
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ~>
105
+ - !ruby/object:Gem::Version
106
+ hash: 7
107
+ segments:
108
+ - 1
109
+ - 5
110
+ - 2
111
+ version: 1.5.2
112
+ requirement: *id006
113
+ - !ruby/object:Gem::Dependency
114
+ prerelease: false
115
+ type: :development
116
+ name: rcov
117
+ version_requirements: &id007 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ hash: 3
123
+ segments:
124
+ - 0
125
+ version: "0"
126
+ requirement: *id007
127
+ - !ruby/object:Gem::Dependency
128
+ prerelease: false
129
+ type: :development
130
+ name: reek
131
+ version_requirements: &id008 !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ~>
135
+ - !ruby/object:Gem::Version
136
+ hash: 15
137
+ segments:
138
+ - 1
139
+ - 2
140
+ - 8
141
+ version: 1.2.8
142
+ requirement: *id008
143
+ - !ruby/object:Gem::Dependency
144
+ prerelease: false
145
+ type: :development
146
+ name: roodi
147
+ version_requirements: &id009 !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ~>
151
+ - !ruby/object:Gem::Version
152
+ hash: 11
153
+ segments:
154
+ - 2
155
+ - 1
156
+ - 0
157
+ version: 2.1.0
158
+ requirement: *id009
159
+ - !ruby/object:Gem::Dependency
160
+ prerelease: false
161
+ type: :development
162
+ name: cucumber
163
+ version_requirements: &id010 !ruby/object:Gem::Requirement
164
+ none: false
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ hash: 3
169
+ segments:
170
+ - 0
171
+ version: "0"
172
+ requirement: *id010
173
+ - !ruby/object:Gem::Dependency
174
+ prerelease: false
175
+ type: :development
176
+ name: capybara
177
+ version_requirements: &id011 !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ hash: 3
183
+ segments:
184
+ - 0
185
+ version: "0"
186
+ requirement: *id011
187
+ description: Spellcheck your text entry with TinyMCE and Rack SpellChecker
188
+ email: dpickett@enlightsolutions.com
189
+ executables: []
190
+
191
+ extensions: []
192
+
193
+ extra_rdoc_files:
194
+ - LICENSE.txt
195
+ - README.rdoc
196
+ files:
197
+ - .document
198
+ - .rspec
199
+ - Gemfile
200
+ - Gemfile.lock
201
+ - LICENSE.txt
202
+ - README.rdoc
203
+ - Rakefile
204
+ - VERSION
205
+ - features/spell_checking.feature
206
+ - features/step_definitions/replacement_steps.rb
207
+ - features/step_definitions/spell_check_steps.rb
208
+ - features/suggest_replacements.feature
209
+ - features/support/capybara.rb
210
+ - features/support/env.rb
211
+ - lib/rack_spellchecker.rb
212
+ - lib/rack_spellchecker/application.rb
213
+ - lib/rack_spellchecker/request_handler.rb
214
+ - rack_spellchecker.gemspec
215
+ - spec/rack_spellchecker_spec.rb
216
+ - spec/spec_helper.rb
217
+ has_rdoc: true
218
+ homepage: http://github.com/dpickett/rack_spellchecker
219
+ licenses:
220
+ - MIT
221
+ post_install_message:
222
+ rdoc_options: []
223
+
224
+ require_paths:
225
+ - lib
226
+ required_ruby_version: !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ hash: 3
232
+ segments:
233
+ - 0
234
+ version: "0"
235
+ required_rubygems_version: !ruby/object:Gem::Requirement
236
+ none: false
237
+ requirements:
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ hash: 3
241
+ segments:
242
+ - 0
243
+ version: "0"
244
+ requirements: []
245
+
246
+ rubyforge_project:
247
+ rubygems_version: 1.3.7
248
+ signing_key:
249
+ specification_version: 3
250
+ summary: A rack spellchecker to support TinyMCE spellchecking
251
+ test_files:
252
+ - spec/rack_spellchecker_spec.rb
253
+ - spec/spec_helper.rb