linguistics 2.0.2 → 2.0.3

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.
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