did_you_mean 0.9.10-java → 0.10.0-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|