verbs 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -70,7 +70,8 @@ Set this to a string to prepend the conjugated verb with it. When set to <tt>tru
70
70
  * {Lingua::Conjugate}[http://cpansearch.perl.org/src/RWG/Lingua-EN-Conjugate-0.308/lib/Lingua/EN/Conjugate.pm]
71
71
  * {Pat Byrd and Tom McKlin}[http://www2.gsu.edu/~wwwesl/egw/pluralsv.htm]
72
72
  * {Rick Harrison}[http://www.rickharrison.com/language/aspect.html]
73
+ * {Anatoli Makarevich}[https://github.com/makaroni4] for {#6}[https://github.com/rossmeissl/verbs/pull/6]
73
74
 
74
75
  == Copyright
75
76
 
76
- Copyright (c) 2009 Andy Rossmeissl. See LICENSE for details.
77
+ Copyright (c) 2012 Andy Rossmeissl. See LICENSE for details.
@@ -152,28 +152,20 @@ module Verbs
152
152
  end
153
153
 
154
154
  def present_third_person_singular_form_for(verb)
155
- infinitive = case verb
156
- when Verb
157
- verb.infinitive
158
- when String, Symbol
159
- verb.to_sym
160
- end
161
- if infinitive.to_s.match(/#{CONSONANT_PATTERN}y$/)
162
- infinitive.to_s.gsub(/y$/, 'ies').to_sym
163
- elsif infinitive.to_s.match(/[szx]$/) or infinitive.to_s.match(/[sc]h$/)
164
- infinitive.to_s.concat('es').to_sym
155
+ infinitive = verb.is_a?(Verb) ? verb.infinitive.to_s : verb.to_s
156
+
157
+ if infinitive =~ /[a-z&&#{CONSONANT_PATTERN}]y$/i
158
+ infinitive[0..-2] + 'ies'
159
+ elsif infinitive =~ /(ss|sh|t?ch|zz|x|#{CONSONANT_PATTERN}o)$/i
160
+ infinitive + 'es'
165
161
  else
166
- infinitive.to_s.concat('s').to_sym
162
+ infinitive + 's'
167
163
  end
168
164
  end
169
165
 
170
166
  def regular_preterite_for(verb)
171
- infinitive = case verb
172
- when Verb
173
- verb.infinitive
174
- when String, Symbol
175
- verb.to_sym
176
- end
167
+ infinitive = verb.is_a?(Verb) ? verb.infinitive.to_s : verb.to_s
168
+
177
169
  if verb.to_s.match(/#{CONSONANT_PATTERN}#{VOWEL_PATTERN}#{DOUBLED_CONSONANT_PATTERN}$/) and !conjugations.single_terminal_consonants.include?(verb)
178
170
  regular_preterite_with_doubled_terminal_consonant_for verb
179
171
  elsif verb.to_s.match(/#{CONSONANT_PATTERN}e$/) or verb.to_s.match(/ye$/) or verb.to_s.match(/oe$/) or verb.to_s.match(/nge$/) or verb.to_s.match(/ie$/) or verb.to_s.match(/ee$/)
@@ -1,3 +1,3 @@
1
1
  module Verbs
2
- VERSION = "2.1.2"
2
+ VERSION = "2.1.3"
3
3
  end
@@ -123,4 +123,22 @@ class TestVerbs < Test::Unit::TestCase
123
123
  Verbs::Conjugator.conjugate(:accept, :mood => :imperative)
124
124
  end
125
125
  end
126
+
127
+ def test_s_forms
128
+ Verbs::Conjugator.with_options :person => :third, :tense => :present do |standard|
129
+ assert_equal 'does', standard.conjugate('do')
130
+ assert_equal 'flies', standard.conjugate('fly')
131
+ assert_equal 'assesses', standard.conjugate('assess')
132
+ assert_equal 'blushes', standard.conjugate('blush')
133
+ assert_equal 'catches', standard.conjugate('catch')
134
+ assert_equal 'fizzes', standard.conjugate('fizz')
135
+ assert_equal 'relaxes', standard.conjugate('relax')
136
+ assert_equal 'bakes', standard.conjugate('bake')
137
+ assert_equal 'calls', standard.conjugate('call')
138
+ assert_equal 'dies', standard.conjugate('die')
139
+ assert_equal 'glues', standard.conjugate('glue')
140
+ assert_equal 'moos', standard.conjugate('moo')
141
+ assert_equal 'changes', standard.conjugate('change')
142
+ end
143
+ end
126
144
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: verbs
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-18 00:00:00.000000000 Z
12
+ date: 2013-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bueller
@@ -98,7 +98,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: -499867661
101
+ hash: -427894591
102
102
  required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  none: false
104
104
  requirements:
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  version: '0'
108
108
  segments:
109
109
  - 0
110
- hash: -499867661
110
+ hash: -427894591
111
111
  requirements: []
112
112
  rubyforge_project:
113
113
  rubygems_version: 1.8.24