linguistics 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.simplecov +12 -0
  5. data/ChangeLog +773 -11
  6. data/History.rdoc +9 -0
  7. data/Manifest.txt +3 -2
  8. data/README.rdoc +5 -5
  9. data/Rakefile +49 -19
  10. data/examples/generalize_sentence.rb +2 -2
  11. data/lib/linguistics.rb +4 -4
  12. data/lib/linguistics/en/articles.rb +1 -1
  13. data/lib/linguistics/en/conjugation.rb +6 -6
  14. data/lib/linguistics/en/conjunctions.rb +1 -1
  15. data/lib/linguistics/en/infinitives.rb +1 -1
  16. data/lib/linguistics/en/linkparser.rb +11 -11
  17. data/lib/linguistics/en/numbers.rb +11 -11
  18. data/lib/linguistics/en/participles.rb +1 -1
  19. data/lib/linguistics/en/pluralization.rb +16 -16
  20. data/lib/linguistics/en/wordnet.rb +1 -1
  21. data/lib/linguistics/languagebehavior.rb +1 -1
  22. data/spec/{lib/constants.rb → constants.rb} +0 -0
  23. data/spec/helpers.rb +39 -0
  24. data/spec/linguistics/en/articles_spec.rb +194 -203
  25. data/spec/linguistics/en/conjugation_spec.rb +519 -521
  26. data/spec/linguistics/en/conjunctions_spec.rb +31 -47
  27. data/spec/linguistics/en/infinitives_spec.rb +193 -207
  28. data/spec/linguistics/en/linkparser_spec.rb +9 -20
  29. data/spec/linguistics/en/numbers_spec.rb +289 -302
  30. data/spec/linguistics/en/participles_spec.rb +6 -20
  31. data/spec/linguistics/en/pluralization_spec.rb +894 -908
  32. data/spec/linguistics/en/stemmer_spec.rb +10 -23
  33. data/spec/linguistics/en/titlecase_spec.rb +3 -13
  34. data/spec/linguistics/en/wordnet_spec.rb +10 -30
  35. data/spec/linguistics/en_spec.rb +14 -28
  36. data/spec/linguistics/inflector_spec.rb +3 -21
  37. data/spec/linguistics/iso639_spec.rb +28 -37
  38. data/spec/linguistics/monkeypatches_spec.rb +5 -14
  39. data/spec/linguistics_spec.rb +11 -30
  40. metadata +44 -15
  41. metadata.gz.sig +0 -0
  42. data/spec/lib/helpers.rb +0 -38
@@ -1,3 +1,12 @@
1
+ == v2.0.3 [2013-12-02] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ A bunch of fixes from Ippei UKAI <ippei_ukai@mac.com>
4
+
5
+ - fix past tense for words end with y
6
+ - fix past tense for doubling verbs
7
+ - fix present participle conjugation of verbs that end with 'e'
8
+
9
+
1
10
  == v2.0.2 [2013-02-27] Michael Granger <ged@FaerieMUD.org>
2
11
 
3
12
  - Fix for Ruby 2: don't memoize the inflector.
@@ -1,3 +1,4 @@
1
+ .simplecov
1
2
  ChangeLog
2
3
  History.rdoc
3
4
  LICENSE
@@ -24,8 +25,8 @@ lib/linguistics/inflector.rb
24
25
  lib/linguistics/iso639.rb
25
26
  lib/linguistics/languagebehavior.rb
26
27
  lib/linguistics/monkeypatches.rb
27
- spec/lib/constants.rb
28
- spec/lib/helpers.rb
28
+ spec/constants.rb
29
+ spec/helpers.rb
29
30
  spec/linguistics/en/articles_spec.rb
30
31
  spec/linguistics/en/conjugation_spec.rb
31
32
  spec/linguistics/en/conjunctions_spec.rb
@@ -75,7 +75,7 @@ the top-level namespace for all your linguistic functions, and then
75
75
  register it as being available, like so:
76
76
 
77
77
  module Linguistics::TLH
78
-
78
+
79
79
  # Add Klingon to the list of default languages
80
80
  Linguistics.register_language( :tlh, self )
81
81
 
@@ -101,13 +101,13 @@ behavior to your spec:
101
101
 
102
102
  require 'rspec'
103
103
  require 'linguistics/languagebehavior'
104
-
104
+
105
105
  describe Linguistics::TLH do
106
-
106
+
107
107
  it_should_behave_like "a Linguistics language module"
108
-
108
+
109
109
  # ... any other specs for your module
110
-
110
+
111
111
  end
112
112
 
113
113
  If you wish to use the logging subsystem set up by Linguistics, you can
data/Rakefile CHANGED
@@ -1,40 +1,58 @@
1
1
  #!/usr/bin/env rake
2
2
 
3
- require 'hoe'
3
+ begin
4
+ require 'rspec'
5
+ require 'rspec/core/rake_task'
6
+ rescue LoadError
7
+ abort "This Rakefile requires RSpec. Try again after doing 'gem install rspec'"
8
+ end
9
+
10
+ begin
11
+ require 'hoe'
12
+ rescue LoadError
13
+ abort "This Rakefile requires Hoe. Try again after doing 'gem install hoe'"
14
+ end
15
+
16
+ # The path to the generated .gemspec file
17
+ GEMSPEC = '.gemspec'
4
18
 
5
19
  Hoe.plugin :mercurial
20
+ Hoe.plugin :bundler
21
+ Hoe.plugin :publish
6
22
  Hoe.plugin :signing
7
23
 
8
24
  Hoe.plugins.delete :rubyforge
9
25
 
10
- hoespec = Hoe.spec 'linguistics' do
11
- self.name = 'linguistics'
12
- self.readme_file = 'README.rdoc'
13
- self.history_file = 'History.rdoc'
14
- self.extra_rdoc_files = FileList[ '*.rdoc' ]
26
+ hoespec = Hoe.spec 'linguistics' do |spec|
27
+ spec.name = 'linguistics'
28
+ spec.readme_file = 'README.rdoc'
29
+ spec.history_file = 'History.rdoc'
30
+ spec.extra_rdoc_files = FileList[ '*.rdoc' ]
31
+ spec.license 'BSD'
15
32
 
16
- self.developer 'Michael Granger', 'ged@FaerieMUD.org'
33
+ spec.developer 'Michael Granger', 'ged@FaerieMUD.org'
17
34
 
18
- self.dependency 'loggability', '~> 0.5'
35
+ spec.dependency 'loggability', '~> 0.7'
19
36
 
20
- self.dependency 'hoe-deveiate', '~> 0.1', :development
21
- self.dependency 'linkparser', '~> 1.1', :development
22
- self.dependency 'wordnet', '~> 0.99', :development
23
- self.dependency 'ruby-stemmer', '~> 0.9', :development
37
+ spec.dependency 'hoe-deveiate', '~> 0.3', :development
38
+ spec.dependency 'hoe-bundler', '~> 1.2', :development
39
+ spec.dependency 'linkparser', '~> 1.1', :development
40
+ spec.dependency 'wordnet', '~> 1.0', :development
41
+ spec.dependency 'wordnet-defaultdb', '~> 1.0', :development
42
+ spec.dependency 'ruby-stemmer', '~> 0.9', :development
24
43
 
25
- self.spec_extras[:licenses] = ["BSD"]
26
- self.spec_extras[:rdoc_options] = ['-f', 'fivefish', '-t', 'Ruby Linguistics Toolkit']
27
- self.spec_extras[:post_install_message] = [
44
+ spec.spec_extras[:rdoc_options] = ['-f', 'fivefish', '-t', 'Ruby Linguistics Toolkit']
45
+ spec.spec_extras[:post_install_message] = [
28
46
  "This library also presents tie-ins for the 'linkparser' and",
29
47
  "'wordnet' libraries, which you can enable by installing the",
30
48
  "gems of the same name."
31
49
  ].join( "\n" )
32
50
 
33
- self.require_ruby_version( '>=1.9.3' )
34
- self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
35
- self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
51
+ spec.require_ruby_version( '>=1.9.3' )
52
+ spec.hg_sign_tags = true if spec.respond_to?( :hg_sign_tags= )
53
+ spec.check_history_on_release = true if spec.respond_to?( :check_history_on_release= )
36
54
 
37
- self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
55
+ spec.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
38
56
  end
39
57
 
40
58
  ENV['VERSION'] ||= hoespec.spec.version.to_s
@@ -46,3 +64,15 @@ task :coverage do
46
64
  ENV["COVERAGE"] = 'yes'
47
65
  Rake::Task[:spec].invoke
48
66
  end
67
+
68
+
69
+ desc "generate a gemspec from your Hoe.spec"
70
+ file GEMSPEC => 'Rakefile' do |task|
71
+ spec = hoespec.spec.dup
72
+ spec.files.delete( '.gemtest' )
73
+ spec.version = "#{spec.version}.pre.#{Time.now.strftime("%Y%m%d%H%M%S")}"
74
+ File.open( task.name, 'w' ) do |fh|
75
+ fh.write( spec.to_ruby )
76
+ end
77
+ end
78
+
@@ -2,7 +2,7 @@
2
2
 
3
3
  BEGIN {
4
4
  require 'pathname'
5
-
5
+
6
6
  basedir = Pathname.new( __FILE__ ).dirname.parent.expand_path
7
7
  libdir = basedir + "lib"
8
8
  $LOAD_PATH.unshift( basedir.to_s ) unless $LOAD_PATH.include?( basedir.to_s )
@@ -35,7 +35,7 @@ while input = Readline.readline( "Sentence to generalize: " )
35
35
  subj = sent.subject
36
36
  obj = sent.object
37
37
  verb = sent.verb
38
-
38
+
39
39
  input.sub!( /\b#{subj}\b/, generalized_word(subj) ) if subj
40
40
  input.sub!( /\b#{obj}\b/, generalized_word(obj) ) if obj
41
41
  input.sub!( /\b#{verb}\b/, generalized_word(verb) ) if verb
@@ -12,10 +12,10 @@ module Linguistics
12
12
 
13
13
 
14
14
  # Release version
15
- VERSION = '2.0.2'
15
+ VERSION = '2.0.3'
16
16
 
17
17
  # VCS version
18
- REVISION = %q$Revision: d2eeec0b7832 $
18
+ REVISION = %q$Revision: ca93740ec59c $
19
19
 
20
20
  # The list of Classes to add linguistic behaviours to.
21
21
  DEFAULT_EXT_CLASSES = [ String, Numeric, Array ]
@@ -55,7 +55,7 @@ module Linguistics
55
55
  end
56
56
 
57
57
 
58
- ### Register a module as providing linguistic functions for the specified +language+ (a two-
58
+ ### Register a module as providing linguistic functions for the specified +language+ (a two-
59
59
  ### or three-letter ISO639-2 language codes as a Symbol)
60
60
  def self::register_language( language, mod )
61
61
  language_entry = LANGUAGE_CODES[ language.to_sym ] or
@@ -143,7 +143,7 @@ module Linguistics
143
143
  config = languages.pop if languages.last.is_a?( Hash )
144
144
  config ||= {}
145
145
 
146
- classes = Array(config[:classes]) if config[:classes]
146
+ classes = Array(config[:classes]) if config[:classes]
147
147
  classes ||= DEFAULT_EXT_CLASSES
148
148
 
149
149
  self.log.debug "Extending %d classes with %d language modules." %
@@ -102,7 +102,7 @@ module Linguistics::EN::Articles
102
102
 
103
103
 
104
104
  ### Return the inflected phrase with the appropriate indefinite article ("a" or
105
- ### "an") prepended.
105
+ ### "an") prepended.
106
106
  def a( count=nil )
107
107
  count ||= 1
108
108
  phrase = self.to_s
@@ -7,7 +7,7 @@ require 'linguistics/en' unless defined?( Linguistics::EN )
7
7
  #
8
8
  # == Version
9
9
  #
10
- # $Id: conjugation.rb,v 8b1c8ec50991 2012/08/22 02:09:29 ged $
10
+ # $Id: conjugation.rb,v de381a81754d 2013/12/02 18:09:29 ged $
11
11
  #
12
12
  # == Authors
13
13
  #
@@ -147,11 +147,11 @@ module Linguistics::EN::Conjugation
147
147
  def conjugate_present_participle( verb )
148
148
  case verb
149
149
  when /[^aeiou]e$/
150
- return verb[ 0..-2 ]
150
+ return verb[ 0..-2 ] + 'ing'
151
151
  when /ie$/
152
- return verb[ 0..-3 ] + 'y'
152
+ return verb[ 0..-3 ] + 'y' + 'ing'
153
153
  when /[aou]e$/
154
- return verb[ 0..-2 ]
154
+ return verb[ 0..-2 ] + 'ing'
155
155
  else
156
156
  if DOUBLING_VERBS.include?( verb )
157
157
  return verb + verb[ -1 ] + 'ing'
@@ -169,10 +169,10 @@ module Linguistics::EN::Conjugation
169
169
  when /e$/
170
170
  return verb + 'd'
171
171
  when /[^aeiou]y$/
172
- return verb[ 0..-1 ] + 'ied'
172
+ return verb[ 0..-2 ] + 'ied'
173
173
  else
174
174
  if DOUBLING_VERBS.include?( verb )
175
- verb = verb[ -2..-1 ] + 'ed'
175
+ verb = verb + verb[ -1 ] + 'ed'
176
176
  else
177
177
  return verb + 'ed'
178
178
  end
@@ -34,7 +34,7 @@ module Linguistics::EN::Conjunctions
34
34
  ### particular element to be omitted from the resulting conjunction. The
35
35
  ### following options can be used to control the makeup of the returned
36
36
  ### conjunction String:
37
- ###
37
+ ###
38
38
  ### [<b>:separator</b>]
39
39
  ### Specify one or more characters to separate items in the resulting
40
40
  ### list. Defaults to <tt>', '</tt>.
@@ -1061,7 +1061,7 @@ module Linguistics::EN::Infinitives
1061
1061
  if (( suffix = ((INF_SUFFIX_RULE_ORDER & prefixes.keys).first) ))
1062
1062
  rule = INF_SUFFIX_RULES[ suffix ][:rule]
1063
1063
  shortestPrefix = INF_SUFFIX_RULES[ suffix ][:word1]
1064
- self.log.debug "Using rule %p (%p) for suffix %p" %
1064
+ self.log.debug "Using rule %p (%p) for suffix %p" %
1065
1065
  [ rule, shortestPrefix, suffix ] if $DEBUG
1066
1066
 
1067
1067
  case shortestPrefix
@@ -8,35 +8,35 @@ require 'linguistics/en' unless defined?( Linguistics::EN )
8
8
  # # Test to see whether or not the link parser is loaded.
9
9
  # Linguistics::EN.has_link_parser?
10
10
  # # => true
11
- #
11
+ #
12
12
  # # Diagram the first linkage for a test sentence
13
13
  # puts "he is a big dog".en.sentence.linkages.first.to_s
14
- # +---O*---+
15
- # | +--Ds--+
16
- # +Ss+ | +-A-+
17
- # | | | | |
14
+ # +---O*---+
15
+ # | +--Ds--+
16
+ # +Ss+ | +-A-+
17
+ # | | | | |
18
18
  # he is a big dog
19
- #
19
+ #
20
20
  # # Find the verb in the sentence
21
- # "he is a big dog".en.sentence.verb.to_s
21
+ # "he is a big dog".en.sentence.verb.to_s
22
22
  # # => "is"
23
- #
23
+ #
24
24
  # # Combined infinitive + LinkParser: Find the infinitive form of the verb of the
25
25
  # given sentence.
26
26
  # "he is a big dog".en.sentence.verb.infinitive
27
27
  # # => "be"
28
- #
28
+ #
29
29
  # # Find the direct object of the sentence
30
30
  # "he is a big dog".en.sentence.object.to_s
31
31
  # # => "dog"
32
- #
32
+ #
33
33
  # # Combine WordNet + LinkParser to find the definition of the direct object of
34
34
  # # the sentence
35
35
  # "he is a big dog".en.sentence.object.gloss
36
36
  # # => "a member of the genus Canis (probably descended from the common wolf) that
37
37
  # has been domesticated by man since prehistoric times; occurs in many breeds;
38
38
  # \"the dog barked all night\""
39
- #
39
+ #
40
40
  module Linguistics::EN::LinkParser
41
41
 
42
42
  @has_linkparser = false
@@ -100,7 +100,7 @@ module Linguistics::EN::Numbers
100
100
 
101
101
  # Triple-digits
102
102
  proc {|zero,x,y,z|
103
- NUMBER_TO_WORDS_FUNCTIONS[1].call(zero,x) +
103
+ NUMBER_TO_WORDS_FUNCTIONS[1].call(zero,x) +
104
104
  NUMBER_TO_WORDS_FUNCTIONS[2].call(zero,y,z)
105
105
  }
106
106
  ]
@@ -108,24 +108,24 @@ module Linguistics::EN::Numbers
108
108
 
109
109
  ### Return the specified number as english words. One or more configuration
110
110
  ### values may be passed to control the returned String:
111
- ###
111
+ ###
112
112
  ### [<b>:group</b>]
113
113
  ### Controls how many numbers at a time are grouped together. Valid values
114
- ### are <code>0</code> (normal grouping), <code>1</code> (single-digit
115
- ### grouping, e.g., "one, two, three, four"), <code>2</code>
114
+ ### are <code>0</code> (normal grouping), <code>1</code> (single-digit
115
+ ### grouping, e.g., "one, two, three, four"), <code>2</code>
116
116
  ### (double-digit grouping, e.g., "twelve, thirty-four", or <code>3</code>
117
117
  ### (triple-digit grouping, e.g., "one twenty-three, four").
118
118
  ### [<b>:comma</b>]
119
- ### Set the character/s used to separate word groups. Defaults to
119
+ ### Set the character/s used to separate word groups. Defaults to
120
120
  ### <code>", "</code>.
121
121
  ### [<b>:and</b>]
122
- ### Set the word and/or characters used where <code>' and ' </code>(the
123
- ### default) is normally used. Setting <code>:and</code> to
124
- ### <code>' '</code>, for example, will cause <code>2556</code> to be
125
- ### returned as "two-thousand, five hundred fifty-six" instead of
122
+ ### Set the word and/or characters used where <code>' and ' </code>(the
123
+ ### default) is normally used. Setting <code>:and</code> to
124
+ ### <code>' '</code>, for example, will cause <code>2556</code> to be
125
+ ### returned as "two-thousand, five hundred fifty-six" instead of
126
126
  ### "two-thousand, five hundred and fifty-six".
127
127
  ### [<b>:zero</b>]
128
- ### Set the word used to represent the numeral <code>0</code> in the
128
+ ### Set the word used to represent the numeral <code>0</code> in the
129
129
  ### result. <code>'zero'</code> is the default.
130
130
  ### [<b>:decimal</b>]
131
131
  ### Set the translation of any decimal points in the number; the default
@@ -288,7 +288,7 @@ module Linguistics::EN::Numbers
288
288
 
289
289
 
290
290
  ### Return a phrase describing the specified +number+ of objects in the
291
- ### inflected object in general terms. The following options can be used to
291
+ ### inflected object in general terms. The following options can be used to
292
292
  ### control the makeup of the returned quantity String:
293
293
  ###
294
294
  ### [<b>:joinword</b>]
@@ -10,7 +10,7 @@ module Linguistics::EN::Participles
10
10
  Linguistics::EN.register_extension( self )
11
11
 
12
12
 
13
- ### Attempt to return the inflected string in its present participle
13
+ ### Attempt to return the inflected string in its present participle
14
14
  ### form (e.g., talked -> talking).
15
15
  def present_participle
16
16
  plural = self.to_s.en.plural_verb
@@ -3,7 +3,7 @@
3
3
  require 'linguistics/en' unless defined?( Linguistics )
4
4
 
5
5
  # Plural inflection methods for the English-language Linguistics module.
6
- #
6
+ #
7
7
  # It provides conversion of plural forms of all nouns, most verbs,
8
8
  # and some adjectives. It also provides "classical" variants (for
9
9
  # example: "brother" -> "brethren", "dogma" -> "dogmata", etc.) where
@@ -92,13 +92,13 @@ module Linguistics::EN::Pluralization
92
92
 
93
93
  # Classical "..um" -> "..a"
94
94
  PL_sb_C_um_a = matchgroup %w[
95
- maximum minimum momentum optimum
96
- quantum cranium curriculum dictum
97
- phylum aquarium compendium emporium
98
- enconium gymnasium honorarium interregnum
99
- lustrum memorandum millenium rostrum
100
- spectrum speculum stadium trapezium
101
- ultimatum medium vacuum velum
95
+ maximum minimum momentum optimum
96
+ quantum cranium curriculum dictum
97
+ phylum aquarium compendium emporium
98
+ enconium gymnasium honorarium interregnum
99
+ lustrum memorandum millenium rostrum
100
+ spectrum speculum stadium trapezium
101
+ ultimatum medium vacuum velum
102
102
  consortium
103
103
  ].collect {|word| word[0...-2]}
104
104
 
@@ -150,7 +150,7 @@ module Linguistics::EN::Pluralization
150
150
  ghetto guano inferno
151
151
  jumbo lumbago magneto
152
152
  manifesto medico octavo
153
- photo pro quarto
153
+ photo pro quarto
154
154
  canto lingo generalissimo
155
155
  stylo rhino
156
156
  ] | PL_sb_C_o_i_a )
@@ -259,7 +259,7 @@ module Linguistics::EN::Pluralization
259
259
  epidermis ethos eyas gas glottis hepatitis
260
260
  hubris ibis lens mantis marquis metropolis
261
261
  neuritis pathos pelvis polis rhinoceros
262
- sassafras tonsillitis trellis
262
+ sassafras tonsillitis trellis
263
263
  ]
264
264
 
265
265
  PL_v_special_s = matchgroup [
@@ -327,7 +327,7 @@ module Linguistics::EN::Pluralization
327
327
 
328
328
  PL_v_irregular_pres_h = {
329
329
  # 1St pers. sing. 2nd pers. sing. 3rd pers. singular
330
- # 3rd pers. (indet.)
330
+ # 3rd pers. (indet.)
331
331
  "am" => "are", "are" => "are", "is" => "are",
332
332
  "was" => "were", "were" => "were", "was" => "were",
333
333
  "have" => "have", "have" => "have", "has" => "have",
@@ -336,7 +336,7 @@ module Linguistics::EN::Pluralization
336
336
 
337
337
  PL_v_ambiguous_pres_h = {
338
338
  # 1st pers. sing. 2nd pers. sing. 3rd pers. singular
339
- # 3rd pers. (indet.)
339
+ # 3rd pers. (indet.)
340
340
  "act" => "act", "act" => "act", "acts" => "act",
341
341
  "blame" => "blame", "blame" => "blame", "blames" => "blame",
342
342
  "can" => "can", "can" => "can", "can" => "can",
@@ -358,7 +358,7 @@ module Linguistics::EN::Pluralization
358
358
  PL_v_ambiguous_pres = matchgroup PL_v_ambiguous_pres_h.keys
359
359
 
360
360
  PL_v_irregular_non_pres = matchgroup %w[
361
- did had ate made put
361
+ did had ate made put
362
362
  spent fought sank gave sought
363
363
  shall could ought should
364
364
  ]
@@ -486,7 +486,7 @@ module Linguistics::EN::Pluralization
486
486
  ### examining the +original+ input.
487
487
  def postprocess( original, inflected )
488
488
 
489
- # If there's a classical variant, use it instead of the modern one if
489
+ # If there's a classical variant, use it instead of the modern one if
490
490
  # classical mode is on.
491
491
  inflected.sub!( /([^|]+)\|(.+)/ ) do
492
492
  Linguistics::EN.classical? ? $2 : $1
@@ -587,7 +587,7 @@ module Linguistics::EN::Pluralization
587
587
  self.log.debug " accusative pronoun; using PL_pron_acc table"
588
588
  return PL_pron_acc_h[ word.downcase ]
589
589
 
590
- # Handle isolated irregular plurals
590
+ # Handle isolated irregular plurals
591
591
  when /(.*)\b(#{PL_sb_irregular})$/i
592
592
  prefix, word = $1, $2
593
593
  self.log.debug " isolated irregular; using PL_sb_irregular_h table"
@@ -701,7 +701,7 @@ module Linguistics::EN::Pluralization
701
701
  self.log.debug " yep, it's an irregular present tense verb (%p)" % [ key ]
702
702
  return PL_v_irregular_pres_h[ $1.downcase ] + $2
703
703
 
704
- # Handle irregular future, preterite and perfect tenses
704
+ # Handle irregular future, preterite and perfect tenses
705
705
  when /^(#{PL_v_irregular_non_pres})((\s.*)?)$/i
706
706
  self.log.debug " yep, it's an irregular non-present tense verb (%p)" % [ key ]
707
707
  return word