did_you_mean 0.9.10-java → 0.10.0-java
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 +4 -4
- data/.gitignore +4 -0
- data/.travis.yml +13 -19
- data/CHANGELOG.md +229 -0
- data/Gemfile +4 -7
- data/README.md +5 -16
- data/Rakefile +35 -33
- data/benchmark/jaro_winkler/memory_usage.rb +12 -0
- data/benchmark/jaro_winkler/speed.rb +14 -0
- data/benchmark/levenshtein/memory_usage.rb +12 -0
- data/benchmark/levenshtein/speed.rb +17 -0
- data/benchmark/memory_usage.rb +31 -0
- data/did_you_mean.gemspec +9 -2
- data/evaluation/calculator.rb +122 -0
- data/evaluation/dictionary_generator.rb +36 -0
- data/evaluation/incorrect_words.yaml +1159 -0
- data/ext/did_you_mean/extconf.rb +1 -1
- data/ext/did_you_mean/{method_missing.c → method_receiver.c} +1 -1
- data/lib/did_you_mean.rb +22 -3
- data/lib/did_you_mean/core_ext/name_error.rb +30 -22
- data/lib/did_you_mean/core_ext/no_method_error.rb +13 -2
- data/lib/did_you_mean/core_ext/rubinius.rb +16 -0
- data/lib/did_you_mean/finders.rb +48 -17
- data/lib/did_you_mean/finders/method_finder.rb +62 -0
- data/lib/did_you_mean/finders/name_error_finders.rb +8 -11
- data/lib/did_you_mean/finders/name_error_finders/class_finder.rb +77 -0
- data/lib/did_you_mean/finders/name_error_finders/name_finder.rb +18 -0
- data/lib/did_you_mean/formatter.rb +20 -0
- data/lib/did_you_mean/jaro_winkler.rb +87 -0
- data/lib/did_you_mean/test_helper.rb +1 -1
- data/lib/did_you_mean/version.rb +1 -1
- data/test/core_ext/name_error_extension_test.rb +74 -0
- data/test/{no_method_error_extension_test.rb → core_ext/no_method_error_extension_test.rb} +1 -1
- data/test/correctable/class_name_test.rb +65 -0
- data/test/correctable/method_name_test.rb +84 -0
- data/test/{null_finder_test.rb → correctable/uncorrectable_name_test.rb} +3 -7
- data/test/correctable/variable_name_test.rb +79 -0
- data/test/edit_distance/jaro_winkler_test.rb +30 -0
- data/test/test_helper.rb +2 -20
- data/test/word_collection_test.rb +76 -12
- metadata +58 -56
- data/Appraisals +0 -23
- data/gemfiles/activerecord_32.gemfile +0 -21
- data/gemfiles/activerecord_40.gemfile +0 -21
- data/gemfiles/activerecord_41.gemfile +0 -21
- data/gemfiles/activerecord_42.gemfile +0 -21
- data/gemfiles/activerecord_edge.gemfile +0 -25
- data/lib/did_you_mean/finders/name_error_finders/similar_class_finder.rb +0 -50
- data/lib/did_you_mean/finders/name_error_finders/similar_name_finder.rb +0 -61
- data/lib/did_you_mean/finders/similar_attribute_finder.rb +0 -26
- data/lib/did_you_mean/finders/similar_method_finder.rb +0 -34
- data/lib/did_you_mean/word_collection.rb +0 -30
- data/test/all_test.rb +0 -18
- data/test/name_error_extension_test.rb +0 -73
- data/test/similar_attribute_finder_test.rb +0 -17
- data/test/similar_class_finder_test.rb +0 -85
- data/test/similar_method_finder_test.rb +0 -60
- data/test/similar_name_finder_test.rb +0 -62
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d906ea272934313116cb6d8e2998b319a853e5e9
|
4
|
+
data.tar.gz: 3a5b104adea621420f2984e310ca7cde002dce05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5f543c037613afc29083d55883c792cb3c78989fa1f4a3532455c39f6c7bc21d262bc1ffeb0a329d68910b479598d8adc38c2c6054955f7c1e2c84ba837b5fb
|
7
|
+
data.tar.gz: 224dcc94dbc8cea6c5e65d74f1296cae5d588ce3d5f025919eb285c66ff040cc0126568df1a15675fd02f15da0a00ed466c1c319005c0bbee093cb050ed8b450
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -3,33 +3,27 @@ script: bundle exec rake test
|
|
3
3
|
cache: bundler
|
4
4
|
sudo: false
|
5
5
|
|
6
|
+
before_install:
|
7
|
+
- 'if [[ "$TRAVIS_RUBY_VERSION" =~ "jruby" ]]; then rvm get head && rvm use --install $TRAVIS_RUBY_VERSION; fi'
|
8
|
+
|
9
|
+
after_success:
|
10
|
+
- bundle exec rake test:accuracy
|
11
|
+
- bundle exec rake benchmark:memory
|
12
|
+
|
6
13
|
rvm:
|
7
14
|
- 1.9.3
|
8
15
|
- 2.0.0
|
9
|
-
- 2.1
|
10
|
-
- 2.2
|
16
|
+
- 2.1
|
17
|
+
- 2.2
|
11
18
|
- ruby-head
|
12
|
-
- jruby-1.7.
|
19
|
+
- jruby-1.7.21
|
20
|
+
- jruby-9.0.0.0
|
13
21
|
- jruby-head
|
14
22
|
- rbx-2.4.1
|
15
|
-
|
16
|
-
gemfile:
|
17
|
-
- gemfiles/activerecord_32.gemfile
|
18
|
-
- gemfiles/activerecord_40.gemfile
|
19
|
-
- gemfiles/activerecord_41.gemfile
|
20
|
-
- gemfiles/activerecord_42.gemfile
|
21
|
-
- gemfiles/activerecord_edge.gemfile
|
23
|
+
- rbx-2.5.8
|
22
24
|
|
23
25
|
matrix:
|
24
|
-
exclude:
|
25
|
-
- rvm: 1.9.3
|
26
|
-
gemfile: gemfiles/activerecord_edge.gemfile
|
27
|
-
- rvm: 2.0.0
|
28
|
-
gemfile: gemfiles/activerecord_edge.gemfile
|
29
|
-
- rvm: 2.1.5
|
30
|
-
gemfile: gemfiles/activerecord_edge.gemfile
|
31
26
|
allow_failures:
|
27
|
+
- rvm: ruby-head
|
32
28
|
- rvm: jruby-head
|
33
|
-
- rvm: rbx-2.4.1
|
34
|
-
- gemfile: gemfiles/activerecord_edge.gemfile
|
35
29
|
fast_finish: true
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
## [v0.9.10](https://github.com/yuki24/did_you_mean/tree/v0.9.10)
|
2
|
+
|
3
|
+
_<sup>released on 2015-05-14 03:04:47 UTC</sup>_
|
4
|
+
|
5
|
+
#### Bug Fixes
|
6
|
+
|
7
|
+
- Fixed a bug where a duplicate "did you mean?" message was appended each time `#to_s` is called ( [@danfinnie](https://github.com/danfinnie), [#51](https://github.com/yuki24/did_you_mean/issues/51 "Duplicate output for constants in separate gem"))
|
8
|
+
|
9
|
+
## [v0.9.9](https://github.com/yuki24/did_you_mean/tree/v0.9.9)
|
10
|
+
|
11
|
+
_<sup>released on 2015-05-13 03:48:19 UTC</sup>_
|
12
|
+
|
13
|
+
#### Small/Internal Changes
|
14
|
+
|
15
|
+
- Order word suggestions based on Levenshtein distance ( [@tleish](https://github.com/tleish), [#31](https://github.com/yuki24/did_you_mean/pull/31 "Order word suggestions based on Levenshtein.distance."))
|
16
|
+
- Reduce memory allocation by about 40%
|
17
|
+
- Speed up Levenshtein distance calculation by about 40%
|
18
|
+
- The Java extension has been replaced with a pure JRuby implementation
|
19
|
+
|
20
|
+
## [v0.9.8](https://github.com/yuki24/did_you_mean/tree/v0.9.8)
|
21
|
+
|
22
|
+
_<sup>released on 2015-04-12 01:55:27 UTC</sup>_
|
23
|
+
|
24
|
+
#### Internal Changes
|
25
|
+
|
26
|
+
- Speed up Levenshtein by 50% and reduce 97% of memory usage
|
27
|
+
|
28
|
+
## [v0.9.7](https://github.com/yuki24/did_you_mean/tree/v0.9.7)
|
29
|
+
|
30
|
+
_<sup>released on 2015-04-02 04:20:26 UTC</sup>_
|
31
|
+
|
32
|
+
#### Bug Fixes
|
33
|
+
|
34
|
+
- Fixed an issue where _did\_you\_mean_ doesn't install on JRuby properly.
|
35
|
+
|
36
|
+
## [v0.9.6](https://github.com/yuki24/did_you_mean/tree/v0.9.6)
|
37
|
+
|
38
|
+
_<sup>released on 2015-01-24 23:19:27 UTC</sup>_
|
39
|
+
|
40
|
+
#### Bug Fixes
|
41
|
+
|
42
|
+
- Fixed a bug where did\_you\_mean incorrectly suggests protected methods when it just isn't callable ( [@glittershark](https://github.com/glittershark), [#34](https://github.com/yuki24/did_you_mean/issues/34 "Did\_you\_mean incorrectly called when attempting to call protected/private method"))
|
43
|
+
|
44
|
+
## [v0.9.5](https://github.com/yuki24/did_you_mean/tree/v0.9.5)
|
45
|
+
|
46
|
+
_<sup>released on 2015-01-07 12:41:23 UTC</sup>_
|
47
|
+
|
48
|
+
#### Bug Fixes
|
49
|
+
|
50
|
+
- Whitelist `#safe_constantize` method from `ActiveSupport::Inflector` to avoid significant performance slowdown ( [@tleish](https://github.com/tleish), [#19](https://github.com/yuki24/did_you_mean/issues/19 "Significant Slowdown when Using Debugger"), [#20](https://github.com/yuki24/did_you_mean/pull/20 "Whitelisting safe\_constantize (ActiveSupport::Inflector) method"))
|
51
|
+
|
52
|
+
## [v0.9.4](https://github.com/yuki24/did_you_mean/tree/v0.9.4)
|
53
|
+
|
54
|
+
_<sup>released on 2014-11-19 20:00:00 UTC</sup>_
|
55
|
+
|
56
|
+
#### Bug Fixes
|
57
|
+
|
58
|
+
- Fixed a bug where no suggestions will be made on JRuby
|
59
|
+
|
60
|
+
## [v0.9.3](https://github.com/yuki24/did_you_mean/tree/v0.9.3)
|
61
|
+
|
62
|
+
_<sup>released on 2014-11-18 03:50:11 UTC</sup>_
|
63
|
+
|
64
|
+
**This version has been yanked from rubygems.org as it doesn't work with jRuby at all. Please upgrade to 0.9.4 or higher as soon as possible.**
|
65
|
+
|
66
|
+
#### Internal Changes
|
67
|
+
|
68
|
+
- Replaced the crazy C extension with a so much better one (thanks to [@nobu](https://github.com/nobu)!)
|
69
|
+
|
70
|
+
## [v0.9.2](https://github.com/yuki24/did_you_mean/tree/v0.9.2)
|
71
|
+
|
72
|
+
_<sup>released on 2014-11-17 15:32:33 UTC</sup>_
|
73
|
+
|
74
|
+
#### Bug Fixes
|
75
|
+
|
76
|
+
- Fixed a bug where did\_you\_mean doesn't compile on Ruby 2.1.2/2.1.5 ( [#16](https://github.com/yuki24/did_you_mean/issues/16 "Gem building failed on Debian 6.0.10 x86\_64"))
|
77
|
+
|
78
|
+
## [v0.9.1](https://github.com/yuki24/did_you_mean/tree/v0.9.1)
|
79
|
+
|
80
|
+
_<sup>released on 2014-11-16 18:54:24 UTC</sup>_
|
81
|
+
|
82
|
+
**This version has been yanked from rubygems.org as it doesn't compile on Ruby 2.1.2 and 2.1.5. Please upgrade to 0.9.4 or higher as soon as possible.**
|
83
|
+
|
84
|
+
#### Internal Changes
|
85
|
+
|
86
|
+
- Shrink the gem size by removing unneeded ruby header files.
|
87
|
+
- Now it forces everyone to upgrade the gem when they upgrade Ruby to a new version. This avoids introducing a bug like [#14](https://github.com/yuki24/did_you_mean/issues/14 "Compatibility with `letter\_opener` gem").
|
88
|
+
|
89
|
+
## [v0.9.0](https://github.com/yuki24/did_you_mean/tree/v0.9.0)
|
90
|
+
|
91
|
+
_<sup>released on 2014-11-09 01:26:31 UTC</sup>_
|
92
|
+
|
93
|
+
#### New Features
|
94
|
+
|
95
|
+
- did\_you\_mean now suggests instance variable names if `@` is missing ( [#12](https://github.com/yuki24/did_you_mean/issues/12 "Suggest instance- and class-vars"), [<tt>39d1e2b</tt>](https://github.com/yuki24/did_you_mean/commit/39d1e2bd66d6ff8acbc4dd5da922fc7e5fcefb20))
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
@full_name = "Yuki Nishijima"
|
99
|
+
first_name, last_name = full_name.split(" ")
|
100
|
+
# => NameError: undefined local variable or method `full_name' for main:Object
|
101
|
+
#
|
102
|
+
# Did you mean? @full_name
|
103
|
+
#
|
104
|
+
```
|
105
|
+
|
106
|
+
#### Bug Fixes
|
107
|
+
|
108
|
+
- Fixed a bug where did\_you\_mean changes some behaviours of Ruby 2.1.3/2.1.4 installed on Max OS X ( [#14](https://github.com/yuki24/did_you_mean/issues/14 "Compatibility with `letter\_opener` gem"), [<tt>44c451f</tt>](https://github.com/yuki24/did_you_mean/commit/44c451f8c38b11763ba28ddf1ceb9696707ccea0), [<tt>9ebde21</tt>](https://github.com/yuki24/did_you_mean/commit/9ebde211e92eac8494e704f627c62fea7fdbee16))
|
109
|
+
- Fixed a bug where sometimes `NoMethodError` suggests duplicate method names ( [<tt>9865cc5</tt>](https://github.com/yuki24/did_you_mean/commit/9865cc5a9ce926dd9ad4c20d575b710e5f257a4b))
|
110
|
+
|
111
|
+
## [v0.8.0](https://github.com/yuki24/did_you_mean/tree/v0.8.0)
|
112
|
+
|
113
|
+
_<sup>released on 2014-10-27 02:03:13 UTC</sup>_
|
114
|
+
|
115
|
+
**This version has been yanked from rubygems.org as it has a serious bug with Ruby 2.1.3 and 2.1.4 installed on Max OS X. Please upgrade to 0.9.4 or higher as soon as possible.**
|
116
|
+
|
117
|
+
#### New Features
|
118
|
+
|
119
|
+
- JRuby support!
|
120
|
+
|
121
|
+
#### Bug Fixes
|
122
|
+
|
123
|
+
- Fixed a bug where did\_you\_mean unexpectedly disables [better\_errors](https://github.com/charliesome/better_errors)'s REPL
|
124
|
+
- Replaced [binding\_of\_caller](https://github.com/banister/binding_of_caller) dependency with [interception](https://github.com/ConradIrwin/interception)
|
125
|
+
- Fixed the wrong implementation of Levenshtein algorithm ( [#2](https://github.com/yuki24/did_you_mean/pull/2 "Fix bug of DidYouMean::Levenshtein#min3."), [@fortissimo1997](https://github.com/fortissimo1997))
|
126
|
+
|
127
|
+
## [v0.7.0](https://github.com/yuki24/did_you_mean/tree/v0.7.0)
|
128
|
+
|
129
|
+
_<sup>released on 2014-09-26 03:37:18 UTC</sup>_
|
130
|
+
|
131
|
+
**This version has been yanked from rubygems.org as it has a serious bug with Ruby 2.1.3 and 2.1.4 installed on Max OS X. Please upgrade to 0.9.4 or higher as soon as possible.**
|
132
|
+
|
133
|
+
#### New Features
|
134
|
+
|
135
|
+
- Added support for Ruby 2.1.3, 2.2.0-preview1 and ruby-head
|
136
|
+
- Added support for ActiveRecord 4.2.0.beta1
|
137
|
+
- Word searching is now about 40% faster than v0.6.0
|
138
|
+
- Removed `text` gem dependency
|
139
|
+
- Better output on pry and Rspec
|
140
|
+
|
141
|
+
#### Small/Internal Changes
|
142
|
+
|
143
|
+
- A lot of internal refactoring
|
144
|
+
|
145
|
+
## [v0.6.0](https://github.com/yuki24/did_you_mean/tree/v0.6.0)
|
146
|
+
|
147
|
+
_<sup>released on 2014-05-18 00:23:24 UTC</sup>_
|
148
|
+
|
149
|
+
**This version has been yanked from rubygems.org as it has a serious bug with Ruby 2.1.3 and 2.1.4 installed on Max OS X. Please upgrade to 0.9.0 as soon as possible.**
|
150
|
+
|
151
|
+
#### New Features
|
152
|
+
|
153
|
+
- Added basic support for constants. Now you'll see class name suggestions when you misspelled a class names/module names:
|
154
|
+
|
155
|
+
```ruby
|
156
|
+
> Ocject
|
157
|
+
# => NameError: uninitialized constant Ocject
|
158
|
+
#
|
159
|
+
# Did you mean? Object
|
160
|
+
#
|
161
|
+
```
|
162
|
+
|
163
|
+
#### Bug Fixes
|
164
|
+
|
165
|
+
- Fixed a bug where did\_you\_mean segfaults on Ruby head(2.2.0dev)
|
166
|
+
|
167
|
+
## [v0.5.0](https://github.com/yuki24/did_you_mean/tree/v0.5.0)
|
168
|
+
|
169
|
+
_<sup>released on 2014-05-10 17:59:54 UTC</sup>_
|
170
|
+
|
171
|
+
#### New Features
|
172
|
+
|
173
|
+
- Added support for Ruby 2.1.2
|
174
|
+
|
175
|
+
## [v0.4.0](https://github.com/yuki24/did_you_mean/tree/v0.4.0)
|
176
|
+
|
177
|
+
_<sup>released on 2014-04-20 02:10:31 UTC</sup>_
|
178
|
+
|
179
|
+
#### New Features
|
180
|
+
|
181
|
+
- did\_you\_mean now suggests a similar attribute name when you misspelled it.
|
182
|
+
|
183
|
+
```ruby
|
184
|
+
User.new(flrst_name: "wrong flrst name")
|
185
|
+
# => ActiveRecord::UnknownAttributeError: unknown attribute: flrst_name
|
186
|
+
#
|
187
|
+
# Did you mean? first_name: string
|
188
|
+
#
|
189
|
+
```
|
190
|
+
|
191
|
+
#### Bug Fixes
|
192
|
+
|
193
|
+
- Fixed a bug where did\_you\_mean doesn't work with `ActiveRecord::UnknownAttributeError`
|
194
|
+
|
195
|
+
## [v0.3.1](https://github.com/yuki24/did_you_mean/tree/v0.3.1)
|
196
|
+
|
197
|
+
_<sup>released on 2014-03-20 23:16:20 UTC</sup>_
|
198
|
+
|
199
|
+
#### Small/Internal Changes
|
200
|
+
|
201
|
+
- Changed output for readability.
|
202
|
+
- Better algorithm to find the correct method.
|
203
|
+
|
204
|
+
## [v0.3.0](https://github.com/yuki24/did_you_mean/tree/v0.3.0)
|
205
|
+
|
206
|
+
_<sup>released on 2014-03-20 23:13:13 UTC</sup>_
|
207
|
+
|
208
|
+
#### New Features
|
209
|
+
|
210
|
+
- Added support for Ruby 2.1.1 and 2.2.0(head).
|
211
|
+
|
212
|
+
## [v0.2.0](https://github.com/yuki24/did_you_mean/tree/v0.2.0)
|
213
|
+
|
214
|
+
_<sup>released on 2014-03-20 23:12:13 UTC</sup>_
|
215
|
+
|
216
|
+
#### Incompatible Changes
|
217
|
+
|
218
|
+
- dropped support for JRuby and Rubbinious.
|
219
|
+
|
220
|
+
#### New Features
|
221
|
+
|
222
|
+
- did\_you\_mean no longer makes Ruby slow.
|
223
|
+
|
224
|
+
## [v0.1.0: First Release](https://github.com/yuki24/did_you_mean/tree/v0.1.0)
|
225
|
+
|
226
|
+
_<sup>released on 2014-03-20 23:11:14 UTC</sup>_
|
227
|
+
|
228
|
+
- Now you will have "did you mean?" experience in Ruby!
|
229
|
+
- but still very experimental since this gem makes Ruby a lot slower.
|
data/Gemfile
CHANGED
@@ -3,16 +3,13 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in did_you_mean.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
platforms :jruby do
|
11
|
-
gem 'activerecord-jdbcsqlite3-adapter'
|
12
|
-
end
|
6
|
+
gem 'benchmark-ips'
|
7
|
+
gem 'memory_profiler'
|
8
|
+
gem 'jaro_winkler', '~> 1.3.6'
|
13
9
|
|
14
10
|
platforms :rbx do
|
15
11
|
gem 'rubysl', '~> 2.0'
|
12
|
+
gem 'rubysl-openssl', '2.2.1'
|
16
13
|
gem 'racc'
|
17
14
|
gem 'rubinius-developer_tools'
|
18
15
|
end
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
'Did you mean?' experience in Ruby. No, Really.
|
4
4
|
|
5
|
-
**For those who are still using 0.6.0, 0.7.0 and 0.8.0, please upgrade to 0.9.
|
5
|
+
**For those who are still using 0.6.0, 0.7.0 and 0.8.0, please upgrade to the latest version (0.9.6) as they have a serious bug with Ruby 2.1.3 and 2.1.4 installed on Mac OS X.**
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -72,16 +72,6 @@ params.with_inddiferent_access
|
|
72
72
|
#
|
73
73
|
```
|
74
74
|
|
75
|
-
### ActiveRecord::UnknownAttributeError
|
76
|
-
|
77
|
-
```ruby
|
78
|
-
User.new(nmee: "wrong flrst name")
|
79
|
-
# => ActiveRecord::UnknownAttributeError: unknown attribute: nmee
|
80
|
-
#
|
81
|
-
# Did you mean? name: string
|
82
|
-
#
|
83
|
-
```
|
84
|
-
|
85
75
|
## 'Did You Mean' Experience is Everywhere
|
86
76
|
|
87
77
|
_did\_you\_mean_ gem automagically puts method suggestions into the error message. This means you'll have the "Did you mean?" experience almost everywhere:
|
@@ -92,10 +82,9 @@ _did\_you\_mean_ gem automagically puts method suggestions into the error messag
|
|
92
82
|
|
93
83
|
_did\_you\_mean_ gem supports the following implementations:
|
94
84
|
|
95
|
-
* MRI 1.9.3, 2.0.0, 2.1.x, 2.2.
|
96
|
-
* JRuby
|
97
|
-
|
98
|
-
Any other implementations are **NOT** supported (Rubinius support is work in progress).
|
85
|
+
* MRI 1.9.3, 2.0.0, 2.1.x, 2.2.x and ruby-head
|
86
|
+
* JRuby 1.7.21, 9.0.0.0 and jruby-head
|
87
|
+
* Rubinius 2.4.1 and 2.5.8
|
99
88
|
|
100
89
|
## Contributing
|
101
90
|
|
@@ -107,4 +96,4 @@ Any other implementations are **NOT** supported (Rubinius support is work in pro
|
|
107
96
|
|
108
97
|
## License
|
109
98
|
|
110
|
-
Copyright (c)
|
99
|
+
Copyright (c) 2015 Yuki Nishijima. See MIT-LICENSE for further details.
|
data/Rakefile
CHANGED
@@ -1,48 +1,50 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
|
3
|
-
|
4
|
-
defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
|
5
|
-
end
|
6
|
-
|
7
|
-
desc "run tests"
|
8
|
-
task default: [:test]
|
9
|
-
|
10
|
-
if mri?
|
3
|
+
if RUBY_ENGINE == "ruby"
|
11
4
|
require 'rake/extensiontask'
|
12
5
|
|
13
|
-
Rake::ExtensionTask.new
|
14
|
-
ext.name = "
|
6
|
+
Rake::ExtensionTask.new 'did_you_mean' do |ext|
|
7
|
+
ext.name = "method_receiver"
|
15
8
|
ext.lib_dir = "lib/did_you_mean"
|
16
9
|
end
|
10
|
+
end
|
17
11
|
|
18
|
-
|
19
|
-
task :test do
|
20
|
-
Rake::Task['compile'].reenable
|
21
|
-
Rake::Task['compile'].invoke
|
12
|
+
require 'rake/testtask'
|
22
13
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
14
|
+
Rake::TestTask.new do |task|
|
15
|
+
task.libs << "test"
|
16
|
+
task.pattern = 'test/**/*_test.rb'
|
17
|
+
task.verbose = true
|
18
|
+
# task.warning = true
|
19
|
+
end
|
29
20
|
|
30
|
-
|
21
|
+
desc "Run tests"
|
22
|
+
task test: [:clobber, :compile] if RUBY_ENGINE == 'ruby'
|
23
|
+
task default: :test
|
24
|
+
|
25
|
+
namespace :test do
|
26
|
+
namespace :accuracy do
|
27
|
+
desc "Download Wiktionary's Simple English data and save it as a dictionary"
|
28
|
+
task :prepare do
|
29
|
+
sh 'ruby evaluation/dictionary_generator.rb'
|
30
|
+
end
|
31
31
|
end
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
33
|
+
desc "Calculate accuracy of the gems' spell checker"
|
34
|
+
task :accuracy do
|
35
|
+
if !File.exist?("evaluation/dictionary.yml")
|
36
|
+
puts 'Generating dictionary for evaluation:'
|
37
|
+
Rake::Task["test:accuracy:prepare"].execute
|
38
|
+
puts "\n"
|
39
39
|
end
|
40
|
+
|
41
|
+
sh 'bundle exec ruby evaluation/calculator.rb'
|
40
42
|
end
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
43
|
+
end
|
44
|
+
|
45
|
+
namespace :benchmark do
|
46
|
+
desc "Measure memory usage by the did_you_mean gem"
|
47
|
+
task :memory do
|
48
|
+
sh 'bundle exec ruby benchmark/memory_usage.rb'
|
47
49
|
end
|
48
50
|
end
|