verbs 1.1.2 → 2.0.0
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.
- data/README.rdoc +28 -0
- data/VERSION +1 -1
- data/lib/verbs/conjugator.rb +98 -30
- data/lib/verbs/verb.rb +1 -1
- data/test/test_verbs.rb +70 -63
- data/verbs.gemspec +2 -2
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -21,10 +21,38 @@ The gem is hosted at http://gemcutter.org/gems/verbs
|
|
21
21
|
|
22
22
|
gem install verbs
|
23
23
|
|
24
|
+
== Tense/aspect quick reference
|
25
|
+
|
26
|
+
<table>
|
27
|
+
<tr>
|
28
|
+
<th>Example</th>
|
29
|
+
<th>Tense</th>
|
30
|
+
<th>Aspect</th>
|
31
|
+
</tr>
|
32
|
+
|
33
|
+
<tr><td>I usually accepted</td><td>past</td><td>habitual</td></tr>
|
34
|
+
<tr><td>I had accepted</td><td>past</td><td>perfect</td></tr>
|
35
|
+
<tr><td>I accepted</td><td>past</td><td>perfective</td></tr>
|
36
|
+
<tr><td>I was accepting</td><td>past</td><td>progressive</td></tr>
|
37
|
+
<tr><td>I was about to accept</td><td>past</td><td>prospective</td></tr>
|
38
|
+
<tr><td>I accept</td><td>present</td><td>habitual</td></tr>
|
39
|
+
<tr><td>I have accepted</td><td>present</td><td>perfect</td></tr>
|
40
|
+
<tr><td>I am having accepted</td><td>present</td><td>perfective</td></tr>
|
41
|
+
<tr><td>I am accepting</td><td>present</td><td>progressive</td></tr>
|
42
|
+
<tr><td>I am about to accept</td><td>present</td><td>prospective</td></tr>
|
43
|
+
<tr><td>I will accept</td><td>future</td><td>habitual</td></tr>
|
44
|
+
<tr><td>I will have accepted</td><td>future</td><td>perfect</td></tr>
|
45
|
+
<tr><td>I will be having accepted future</td><td>perfective</td></tr>
|
46
|
+
<tr><td>I will be accepting</td><td>future</td><td>progressive</td></tr>
|
47
|
+
<tr><td>I will be about to accept future</td><td>prospective</td></tr>
|
48
|
+
|
49
|
+
</table>
|
50
|
+
|
24
51
|
== Acknowledgements
|
25
52
|
|
26
53
|
* {Lingua::Conjugate}[http://cpansearch.perl.org/src/RWG/Lingua-EN-Conjugate-0.308/lib/Lingua/EN/Conjugate.pm]
|
27
54
|
* {Pat Byrd and Tom McKlin}[http://www2.gsu.edu/~wwwesl/egw/pluralsv.htm]
|
55
|
+
* {Rick Harrison}[http://www.rickharrison.com/language/aspect.html]
|
28
56
|
|
29
57
|
== Copyright
|
30
58
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
data/lib/verbs/conjugator.rb
CHANGED
@@ -35,28 +35,22 @@ module Verbs
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def conjugate(infinitive, options = {})
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
38
|
+
tense = options[:tense] || :present # present, past, future
|
39
|
+
person = options[:person] || :third # first, second, third
|
40
|
+
plurality = options[:plurality] || :singular # singular, plural
|
41
|
+
diathesis = options[:diathesis] || :active # active, passive
|
42
|
+
mood = options[:mood] || :indicative # conditional, imperative, indicative, injunctive, optative, potential, subjunctive
|
43
|
+
aspect = options[:aspect] || :habitual # perfective, habitual, progressive, perfect, prospective
|
44
|
+
|
45
|
+
form = form_for(tense, aspect)
|
46
|
+
|
47
|
+
conjugation = form.map { |e| resolve e, infinitive, tense, person, plurality }.join(' ').strip
|
44
48
|
|
45
49
|
if actor = options.delete(:subject)
|
46
50
|
actor = subject(options).humanize if actor.is_a?(TrueClass)
|
47
51
|
end
|
48
52
|
|
49
|
-
|
50
|
-
conjugation = verb[options] || conjugate_irregular(verb, options)
|
51
|
-
else
|
52
|
-
conjugation = conjugate_regular(infinitive, options)
|
53
|
-
end
|
54
|
-
|
55
|
-
if actor
|
56
|
-
"#{actor} #{conjugation}"
|
57
|
-
else
|
58
|
-
conjugation
|
59
|
-
end
|
53
|
+
"#{actor} #{conjugation}".strip
|
60
54
|
end
|
61
55
|
|
62
56
|
def subject(options)
|
@@ -76,29 +70,79 @@ module Verbs
|
|
76
70
|
|
77
71
|
private
|
78
72
|
|
79
|
-
def
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
73
|
+
def resolve(element, infinitive, tense, person, plurality)
|
74
|
+
case element
|
75
|
+
when String
|
76
|
+
element
|
77
|
+
when :infinitive
|
78
|
+
infinitive
|
79
|
+
when :present, :past, :present_participle, :past_participle
|
80
|
+
inflect infinitive, element, person, plurality
|
81
|
+
when Symbol
|
82
|
+
inflect element, tense, person, plurality
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def inflect(infinitive, inflection, person, plurality)
|
87
|
+
send(*([inflection, infinitive, person, plurality][0, method(inflection).arity + 1]))
|
88
|
+
end
|
89
|
+
|
90
|
+
def present(infinitive, person, plurality)
|
91
|
+
if verb = conjugations.irregulars[infinitive]
|
92
|
+
conjugate_irregular(verb, :tense => :present, :person => person, :plurality => plurality)
|
93
|
+
elsif person == :third and plurality == :singular
|
94
|
+
present_third_person_singular_form_for infinitive
|
95
|
+
else
|
96
|
+
infinitive
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def past(infinitive, person, plurality)
|
101
|
+
if verb = conjugations.irregulars[infinitive]
|
102
|
+
conjugate_irregular(verb, :tense => :past, :person => person, :plurality => plurality)
|
103
|
+
else
|
104
|
+
regular_preterite_for infinitive
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def present_participle(infinitive)
|
109
|
+
if infinitive.to_s.match(/#{VOWEL_PATTERN}#{CONSONANT_PATTERN}$/) and !conjugations.single_terminal_consonants.include?(infinitive)
|
110
|
+
present_participle_with_doubled_terminal_consonant_for verb
|
111
|
+
elsif infinitive.to_s.match(/c$/)
|
112
|
+
infinitive.to_s.concat('king').to_sym
|
113
|
+
elsif infinitive.to_s.match(/ye$/) or infinitive.to_s.match(/oe$/) or infinitive.to_s.match(/nge$/) or infinitive.to_s.match(/ee$/)
|
114
|
+
infinitive.to_s.concat('ing').to_sym
|
115
|
+
elsif infinitive.to_s.match(/ie$/)
|
116
|
+
infinitive.to_s[0..-2].concat('ying').to_sym
|
117
|
+
else
|
118
|
+
infinitive.to_s[0..-1].concat('ing').to_sym
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def past_participle(infinitive)
|
123
|
+
if verb = conjugations.irregulars[infinitive]
|
124
|
+
conjugate_irregular(verb, :tense => :past, :derivative => :participle)
|
125
|
+
else
|
126
|
+
regular_preterite_for infinitive
|
89
127
|
end
|
90
128
|
end
|
91
129
|
|
92
|
-
def
|
130
|
+
def conjugate_irregular(verb, options)
|
131
|
+
return verb[options] if verb[options]
|
132
|
+
|
93
133
|
tense = options[:tense]
|
94
134
|
person = options[:person]
|
95
135
|
plurality = options[:plurality]
|
136
|
+
derivative = options[:derivative]
|
137
|
+
|
96
138
|
if [tense, person, plurality] == [:present, :third, :singular]
|
97
139
|
present_third_person_singular_form_for verb
|
140
|
+
elsif [tense, derivative] == [:past, :participle]
|
141
|
+
verb.past_participle
|
98
142
|
elsif tense == :present
|
99
|
-
verb
|
143
|
+
verb.infinitive
|
100
144
|
elsif tense == :past
|
101
|
-
|
145
|
+
verb.preterite
|
102
146
|
end
|
103
147
|
end
|
104
148
|
|
@@ -140,5 +184,29 @@ module Verbs
|
|
140
184
|
regular_preterite_for verb.to_s.concat(verb.to_s[-1,1]).to_sym
|
141
185
|
end
|
142
186
|
|
187
|
+
def present_participle_with_doubled_terminal_consonant_for(verb)
|
188
|
+
present_participle verb.to_s.concat(verb.to_s[-1,1]).to_sym
|
189
|
+
end
|
190
|
+
|
191
|
+
def form_for(tense, aspect)
|
192
|
+
form = []
|
193
|
+
if tense == :future
|
194
|
+
form << 'will'
|
195
|
+
form << :infinitive if aspect == :habitual
|
196
|
+
form.concat ['have', :past_participle] if aspect == :perfect
|
197
|
+
form.concat ['be having', :past_participle] if aspect == :perfective
|
198
|
+
form.concat ['be', :present_participle] if aspect == :progressive
|
199
|
+
form.concat ['be about to', :infinitive] if aspect == :prospective
|
200
|
+
else
|
201
|
+
form.concat ['usually', :past_participle] if [tense, aspect] == [:past, :habitual]
|
202
|
+
form.concat [:have, :past_participle] if aspect == :perfect
|
203
|
+
form << :past if [tense, aspect] == [:past, :perfective]
|
204
|
+
form.concat [:be, :present_participle] if aspect == :progressive
|
205
|
+
form.concat [:be, 'about to', :infinitive] if aspect == :prospective
|
206
|
+
form << :present if [tense, aspect] == [:present, :habitual]
|
207
|
+
form.concat [:be, 'having', :past_participle] if [tense, aspect] == [:present, :perfective]
|
208
|
+
end
|
209
|
+
form
|
210
|
+
end
|
143
211
|
end
|
144
212
|
end
|
data/lib/verbs/verb.rb
CHANGED
data/test/test_verbs.rb
CHANGED
@@ -2,88 +2,95 @@ require 'helper'
|
|
2
2
|
|
3
3
|
class TestVerbs < Test::Unit::TestCase
|
4
4
|
def test_copular_conjugation
|
5
|
-
assert_equal
|
6
|
-
assert_equal
|
7
|
-
assert_equal
|
8
|
-
assert_equal
|
9
|
-
assert_equal
|
10
|
-
assert_equal
|
11
|
-
assert_equal
|
12
|
-
assert_equal
|
13
|
-
assert_equal
|
14
|
-
assert_equal
|
5
|
+
assert_equal 'am', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :first, :plurality => :singular, :aspect => :habitual)
|
6
|
+
assert_equal 'are', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :second, :plurality => :singular, :aspect => :habitual)
|
7
|
+
assert_equal 'is', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
8
|
+
assert_equal 'are', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :first, :plurality => :plural, :aspect => :habitual)
|
9
|
+
assert_equal 'are', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :third, :plurality => :plural, :aspect => :habitual)
|
10
|
+
assert_equal 'was', Verbs::Conjugator.conjugate(:be, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
11
|
+
assert_equal 'were', Verbs::Conjugator.conjugate(:be, :tense => :past, :person => :second, :plurality => :singular, :aspect => :perfective)
|
12
|
+
assert_equal 'was', Verbs::Conjugator.conjugate(:be, :tense => :past, :person => :third, :plurality => :singular, :aspect => :perfective)
|
13
|
+
assert_equal 'were', Verbs::Conjugator.conjugate(:be, :tense => :past, :person => :first, :plurality => :plural, :aspect => :perfective)
|
14
|
+
assert_equal 'were', Verbs::Conjugator.conjugate(:be, :tense => :past, :person => :third, :plurality => :plural, :aspect => :perfective)
|
15
15
|
end
|
16
16
|
def test_irregular_conjugation
|
17
|
-
assert_equal
|
18
|
-
assert_equal
|
19
|
-
assert_equal
|
20
|
-
assert_equal
|
21
|
-
assert_equal
|
22
|
-
assert_equal
|
23
|
-
assert_equal
|
24
|
-
assert_equal
|
25
|
-
assert_equal
|
26
|
-
assert_equal
|
27
|
-
assert_equal
|
17
|
+
assert_equal 'break', Verbs::Conjugator.conjugate(:break, :tense => :present, :person => :first, :plurality => :singular, :aspect => :habitual)
|
18
|
+
assert_equal 'break', Verbs::Conjugator.conjugate(:break, :tense => :present, :person => :second, :plurality => :singular, :aspect => :habitual)
|
19
|
+
assert_equal 'breaks', Verbs::Conjugator.conjugate(:break, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
20
|
+
assert_equal 'break', Verbs::Conjugator.conjugate(:break, :tense => :present, :person => :first, :plurality => :plural, :aspect => :habitual)
|
21
|
+
assert_equal 'break', Verbs::Conjugator.conjugate(:break, :tense => :present, :person => :third, :plurality => :plural, :aspect => :habitual)
|
22
|
+
assert_equal 'broke', Verbs::Conjugator.conjugate(:break, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
23
|
+
assert_equal 'broke', Verbs::Conjugator.conjugate(:break, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
24
|
+
assert_equal 'broke', Verbs::Conjugator.conjugate(:break, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
25
|
+
assert_equal 'broke', Verbs::Conjugator.conjugate(:break, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
26
|
+
assert_equal 'broke', Verbs::Conjugator.conjugate(:break, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
27
|
+
assert_equal 'has', Verbs::Conjugator.conjugate(:have, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
28
28
|
end
|
29
29
|
def test_irregular_conjugation_with_terminal_y
|
30
|
-
assert_equal
|
31
|
-
assert_equal
|
32
|
-
assert_equal
|
30
|
+
assert_equal 'flies', Verbs::Conjugator.conjugate(:fly, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
31
|
+
assert_equal 'carried', Verbs::Conjugator.conjugate(:carry, :tense => :past, :person => :third, :plurality => :singular, :aspect => :perfective)
|
32
|
+
assert_equal 'stayed', Verbs::Conjugator.conjugate(:stay, :tense => :past, :person => :third, :plurality => :singular, :aspect => :perfective)
|
33
33
|
end
|
34
34
|
def test_regular_conjugation
|
35
|
-
assert_equal
|
36
|
-
assert_equal
|
37
|
-
assert_equal
|
38
|
-
assert_equal
|
39
|
-
assert_equal
|
40
|
-
assert_equal
|
41
|
-
assert_equal
|
42
|
-
assert_equal
|
43
|
-
assert_equal
|
44
|
-
assert_equal
|
35
|
+
assert_equal 'accept', Verbs::Conjugator.conjugate(:accept, :tense => :present, :person => :first, :plurality => :singular, :aspect => :habitual)
|
36
|
+
assert_equal 'accept', Verbs::Conjugator.conjugate(:accept, :tense => :present, :person => :second, :plurality => :singular, :aspect => :habitual)
|
37
|
+
assert_equal 'accepts', Verbs::Conjugator.conjugate(:accept, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
38
|
+
assert_equal 'accept', Verbs::Conjugator.conjugate(:accept, :tense => :present, :person => :first, :plurality => :plural, :aspect => :habitual)
|
39
|
+
assert_equal 'accept', Verbs::Conjugator.conjugate(:accept, :tense => :present, :person => :third, :plurality => :plural, :aspect => :habitual)
|
40
|
+
assert_equal 'accepted', Verbs::Conjugator.conjugate(:accept, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
41
|
+
assert_equal 'accepted', Verbs::Conjugator.conjugate(:accept, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
42
|
+
assert_equal 'accepted', Verbs::Conjugator.conjugate(:accept, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
43
|
+
assert_equal 'accepted', Verbs::Conjugator.conjugate(:accept, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
44
|
+
assert_equal 'accepted', Verbs::Conjugator.conjugate(:accept, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
45
45
|
end
|
46
46
|
def test_regular_conjugation_with_terminal_single_consonant
|
47
|
-
assert_equal
|
48
|
-
assert_equal :shipped, Verbs::Conjugator.conjugate(:ship, :tense => :past, :person => :first, :plurality => :singular)
|
49
|
-
assert_equal :shipped, Verbs::Conjugator.conjugate(:ship, :tense => :past, :person => :first, :plurality => :singular)
|
50
|
-
assert_equal :shipped, Verbs::Conjugator.conjugate(:ship, :tense => :past, :person => :first, :plurality => :singular)
|
51
|
-
assert_equal :shipped, Verbs::Conjugator.conjugate(:ship, :tense => :past, :person => :first, :plurality => :singular)
|
47
|
+
assert_equal 'shipped', Verbs::Conjugator.conjugate(:ship, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
52
48
|
end
|
53
49
|
def test_regular_conjugation_with_irregular_terminal_consonant
|
54
|
-
assert_equal
|
55
|
-
assert_equal :abandoned, Verbs::Conjugator.conjugate(:abandon, :tense => :past, :person => :first, :plurality => :singular)
|
56
|
-
assert_equal :abandoned, Verbs::Conjugator.conjugate(:abandon, :tense => :past, :person => :first, :plurality => :singular)
|
57
|
-
assert_equal :abandoned, Verbs::Conjugator.conjugate(:abandon, :tense => :past, :person => :first, :plurality => :singular)
|
58
|
-
assert_equal :abandoned, Verbs::Conjugator.conjugate(:abandon, :tense => :past, :person => :first, :plurality => :singular)
|
50
|
+
assert_equal 'abandoned', Verbs::Conjugator.conjugate(:abandon, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
59
51
|
end
|
60
52
|
def test_regular_conjugation_with_terminal_e
|
61
|
-
assert_equal
|
62
|
-
assert_equal :created, Verbs::Conjugator.conjugate(:create, :tense => :past, :person => :first, :plurality => :singular)
|
63
|
-
assert_equal :created, Verbs::Conjugator.conjugate(:create, :tense => :past, :person => :first, :plurality => :singular)
|
64
|
-
assert_equal :created, Verbs::Conjugator.conjugate(:create, :tense => :past, :person => :first, :plurality => :singular)
|
65
|
-
assert_equal :created, Verbs::Conjugator.conjugate(:create, :tense => :past, :person => :first, :plurality => :singular)
|
53
|
+
assert_equal 'created', Verbs::Conjugator.conjugate(:create, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
66
54
|
end
|
67
55
|
def test_regular_conjugation_with_unusual_terminal_e
|
68
|
-
assert_equal
|
69
|
-
assert_equal
|
70
|
-
assert_equal
|
71
|
-
assert_equal
|
72
|
-
assert_equal
|
56
|
+
assert_equal 'dyed', Verbs::Conjugator.conjugate(:dye, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
57
|
+
assert_equal 'hoed', Verbs::Conjugator.conjugate(:hoe, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
58
|
+
assert_equal 'singed', Verbs::Conjugator.conjugate(:singe, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
59
|
+
assert_equal 'tied', Verbs::Conjugator.conjugate(:tie, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
60
|
+
assert_equal 'agreed', Verbs::Conjugator.conjugate(:agree, :tense => :past, :person => :first, :plurality => :singular, :aspect => :perfective)
|
73
61
|
end
|
74
62
|
def test_conjugation_with_terminal_sibilance
|
75
|
-
assert_equal
|
76
|
-
assert_equal
|
77
|
-
assert_equal
|
78
|
-
assert_equal
|
79
|
-
assert_equal
|
63
|
+
assert_equal 'passes', Verbs::Conjugator.conjugate(:pass, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
64
|
+
assert_equal 'buzzes', Verbs::Conjugator.conjugate(:buzz, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
65
|
+
assert_equal 'coaxes', Verbs::Conjugator.conjugate(:coax, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
66
|
+
assert_equal 'washes', Verbs::Conjugator.conjugate(:wash, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
67
|
+
assert_equal 'watches', Verbs::Conjugator.conjugate(:watch, :tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
80
68
|
end
|
81
69
|
def test_conjugation_with_subject
|
82
|
-
assert_equal 'Matz is', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :third, :plurality => :singular, :subject => 'Matz')
|
83
|
-
assert_equal 'We are', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :first, :plurality => :plural, :subject => true)
|
70
|
+
assert_equal 'Matz is', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :third, :plurality => :singular, :subject => 'Matz', :aspect => :habitual)
|
71
|
+
assert_equal 'We are', Verbs::Conjugator.conjugate(:be, :tense => :present, :person => :first, :plurality => :plural, :subject => true, :aspect => :habitual)
|
84
72
|
end
|
85
73
|
def test_core_access
|
86
|
-
assert_equal :accepts, :accept.verb.conjugate(:tense => :present, :person => :third, :plurality => :singular)
|
87
|
-
assert_equal 'accepts', 'accept'.verb.conjugate(:tense => :present, :person => :third, :plurality => :singular)
|
74
|
+
assert_equal :accepts, :accept.verb.conjugate(:tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
75
|
+
assert_equal 'accepts', 'accept'.verb.conjugate(:tense => :present, :person => :third, :plurality => :singular, :aspect => :habitual)
|
76
|
+
end
|
77
|
+
def test_aspects
|
78
|
+
Verbs::Conjugator.with_options :person => :first, :plurality => :singular, :subject => true do |standard|
|
79
|
+
assert_equal 'I usually accepted', standard.conjugate(:accept, :tense => :past, :aspect => :habitual)
|
80
|
+
assert_equal 'I had accepted', standard.conjugate(:accept, :tense => :past, :aspect => :perfect)
|
81
|
+
assert_equal 'I accepted', standard.conjugate(:accept, :tense => :past, :aspect => :perfective)
|
82
|
+
assert_equal 'I was accepting', standard.conjugate(:accept, :tense => :past, :aspect => :progressive)
|
83
|
+
assert_equal 'I was about to accept', standard.conjugate(:accept, :tense => :past, :aspect => :prospective)
|
84
|
+
assert_equal 'I accept', standard.conjugate(:accept, :tense => :present, :aspect => :habitual)
|
85
|
+
assert_equal 'I have accepted', standard.conjugate(:accept, :tense => :present, :aspect => :perfect)
|
86
|
+
assert_equal 'I am having accepted', standard.conjugate(:accept, :tense => :present, :aspect => :perfective)
|
87
|
+
assert_equal 'I am accepting', standard.conjugate(:accept, :tense => :present, :aspect => :progressive)
|
88
|
+
assert_equal 'I am about to accept', standard.conjugate(:accept, :tense => :present, :aspect => :prospective)
|
89
|
+
assert_equal 'I will accept', standard.conjugate(:accept, :tense => :future, :aspect => :habitual)
|
90
|
+
assert_equal 'I will have accepted', standard.conjugate(:accept, :tense => :future, :aspect => :perfect)
|
91
|
+
assert_equal 'I will be having accepted', standard.conjugate(:accept, :tense => :future, :aspect => :perfective)
|
92
|
+
assert_equal 'I will be accepting', standard.conjugate(:accept, :tense => :future, :aspect => :progressive)
|
93
|
+
assert_equal 'I will be about to accept', standard.conjugate(:accept, :tense => :future, :aspect => :prospective)
|
94
|
+
end
|
88
95
|
end
|
89
96
|
end
|
data/verbs.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{verbs}
|
8
|
-
s.version = "
|
8
|
+
s.version = "2.0.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andy Rossmeissl"]
|
12
|
-
s.date = %q{2009-12-
|
12
|
+
s.date = %q{2009-12-09}
|
13
13
|
s.description = %q{Conjugates most common english verbs for all persons in present and past tense (active diathesis, indicative mood). Standard and exceptional spelling rules are obeyed.}
|
14
14
|
s.email = %q{andy@rossmeissl.net}
|
15
15
|
s.extra_rdoc_files = [
|
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Rossmeissl
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-09 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|