katsuyou 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,295 @@
1
+ require_relative "verb_ending"
2
+
3
+ module Katsuyou
4
+ class GodanVerbEnding < VerbEnding
5
+ def present_polite
6
+ "#{to_い}ます"
7
+ end
8
+
9
+ def present_negative
10
+ if code == "v5r-i"
11
+ "ない"
12
+ else
13
+ "#{to_あ}ない"
14
+ end
15
+ end
16
+
17
+ def present_negative_polite
18
+ "#{to_い}ません"
19
+ end
20
+
21
+ def past
22
+ TAIL_FORMS[code][:connector] + TAIL_FORMS[code][:た]
23
+ end
24
+
25
+ def past_polite
26
+ "#{to_い}ました"
27
+ end
28
+
29
+ def past_negative
30
+ if code == "v5r-i"
31
+ "なかった"
32
+ else
33
+ "#{to_あ}なかった"
34
+ end
35
+ end
36
+
37
+ def past_negative_polite
38
+ "#{to_い}ませんでした"
39
+ end
40
+
41
+ def conjunctive
42
+ TAIL_FORMS[code][:connector] + TAIL_FORMS[code][:て]
43
+ end
44
+
45
+ def conjunctive_polite
46
+ "#{to_い}まして"
47
+ end
48
+
49
+ def conjunctive_negative
50
+ if code == "v5r-i"
51
+ "なくて"
52
+ else
53
+ "#{to_あ}なくて"
54
+ end
55
+ end
56
+
57
+ def conjunctive_negative_polite
58
+ "#{to_い}ませんで"
59
+ end
60
+
61
+ def provisional
62
+ "#{to_え}ば"
63
+ end
64
+
65
+ def provisional_negative
66
+ if code == "v5r-i"
67
+ "なければ"
68
+ else
69
+ "#{to_あ}なければ"
70
+ end
71
+ end
72
+
73
+ def volitional
74
+ "#{to_お}う"
75
+ end
76
+
77
+ def volitional_polite
78
+ "#{to_い}ましょう"
79
+ end
80
+
81
+ def imperative
82
+ if @type.code == "v5aru"
83
+ to_い
84
+ else
85
+ to_え
86
+ end
87
+ end
88
+
89
+ def potential
90
+ "#{to_え}る"
91
+ end
92
+
93
+ def potential_polite
94
+ "#{to_え}ます"
95
+ end
96
+
97
+ def potential_negative
98
+ "#{to_え}ない"
99
+ end
100
+
101
+ def potential_negative_polite
102
+ "#{to_え}ません"
103
+ end
104
+
105
+ def passive
106
+ "#{to_あ}れる"
107
+ end
108
+
109
+ def passive_polite
110
+ "#{to_あ}れます"
111
+ end
112
+
113
+ def passive_negative
114
+ "#{to_あ}れない"
115
+ end
116
+
117
+ def passive_negative_polite
118
+ "#{to_あ}れません"
119
+ end
120
+
121
+ def causative
122
+ "#{to_あ}せる"
123
+ end
124
+
125
+ def causative_polite
126
+ "#{to_あ}せます"
127
+ end
128
+
129
+ def causative_negative
130
+ "#{to_あ}せない"
131
+ end
132
+
133
+ def causative_negative_polite
134
+ "#{to_あ}せません"
135
+ end
136
+
137
+ def causative_passive
138
+ "#{to_あ}せられる"
139
+ end
140
+
141
+ def causative_passive_polite
142
+ "#{to_あ}せられます"
143
+ end
144
+
145
+ def causative_passive_negative
146
+ "#{to_あ}せられない"
147
+ end
148
+
149
+ def causative_passive_negative_polite
150
+ "#{to_あ}せられません"
151
+ end
152
+
153
+ private
154
+
155
+ def code
156
+ @type.code
157
+ end
158
+
159
+ def to_い
160
+ TAIL_FORMS[code][:い]
161
+ end
162
+
163
+ def to_あ
164
+ TAIL_FORMS[code][:あ]
165
+ end
166
+
167
+ def to_え
168
+ TAIL_FORMS[code][:え]
169
+ end
170
+
171
+ def to_お
172
+ TAIL_FORMS[code][:お]
173
+ end
174
+
175
+ TAIL_FORMS = {
176
+ "v5aru" => {
177
+ い: "い",
178
+ あ: "ら",
179
+ え: "れ",
180
+ お: "ろ",
181
+ connector: "っ",
182
+ た: "た",
183
+ て: "て"
184
+ },
185
+ "v5b" => {
186
+ い: "び",
187
+ あ: "ば",
188
+ え: "べ",
189
+ お: "ぼ",
190
+ connector: "ん",
191
+ た: "だ",
192
+ て: "で"
193
+ },
194
+ "v5g" => {
195
+ い: "ぎ",
196
+ あ: "が",
197
+ え: "げ",
198
+ お: "ご",
199
+ connector: "い",
200
+ た: "だ",
201
+ て: "で"
202
+ },
203
+ "v5k" => {
204
+ い: "き",
205
+ あ: "か",
206
+ え: "け",
207
+ お: "こ",
208
+ connector: "い",
209
+ た: "た",
210
+ て: "て"
211
+ },
212
+ "v5k-s" => {
213
+ い: "き",
214
+ あ: "か",
215
+ え: "け",
216
+ お: "こ",
217
+ connector: "っ",
218
+ た: "た",
219
+ て: "て"
220
+ },
221
+ "v5m" => {
222
+ い: "み",
223
+ あ: "ま",
224
+ え: "め",
225
+ お: "も",
226
+ connector: "ん",
227
+ た: "だ",
228
+ て: "で"
229
+ },
230
+ "v5n" => {
231
+ い: "に",
232
+ あ: "な",
233
+ え: "ね",
234
+ お: "の",
235
+ connector: "ん",
236
+ た: "だ",
237
+ て: "で"
238
+ },
239
+ "v5s" => {
240
+ い: "し",
241
+ あ: "さ",
242
+ え: "せ",
243
+ お: "そ",
244
+ connector: "し",
245
+ た: "た",
246
+ て: "て"
247
+ },
248
+ "v5t" => {
249
+ い: "ち",
250
+ あ: "た",
251
+ え: "て",
252
+ お: "と",
253
+ connector: "っ",
254
+ た: "た",
255
+ て: "て"
256
+ },
257
+ "v5u" => {
258
+ い: "い",
259
+ あ: "わ",
260
+ え: "え",
261
+ お: "お",
262
+ connector: "っ",
263
+ た: "た",
264
+ て: "て"
265
+ },
266
+ "v5u-s" => {
267
+ い: "い",
268
+ あ: "わ",
269
+ え: "え",
270
+ お: "お",
271
+ connector: "う",
272
+ た: "た",
273
+ て: "て"
274
+ },
275
+ "v5r" => {
276
+ い: "り",
277
+ あ: "ら",
278
+ え: "れ",
279
+ お: "ろ",
280
+ connector: "っ",
281
+ た: "た",
282
+ て: "て"
283
+ },
284
+ "v5r-i" => {
285
+ い: "り",
286
+ あ: "ら",
287
+ え: "れ",
288
+ お: "ろ",
289
+ connector: "っ",
290
+ た: "た",
291
+ て: "て"
292
+ }
293
+ }
294
+ end
295
+ end
@@ -0,0 +1,137 @@
1
+ require_relative "verb_ending"
2
+
3
+ module Katsuyou
4
+ class IchidanVerbEnding < VerbEnding
5
+ def present_polite
6
+ "ます"
7
+ end
8
+
9
+ def present_negative
10
+ "ない"
11
+ end
12
+
13
+ def present_negative_polite
14
+ "ません"
15
+ end
16
+
17
+ def past
18
+ "た"
19
+ end
20
+
21
+ def past_polite
22
+ "ました"
23
+ end
24
+
25
+ def past_negative
26
+ "なかった"
27
+ end
28
+
29
+ def past_negative_polite
30
+ "ませんでした"
31
+ end
32
+
33
+ def conjunctive
34
+ "て"
35
+ end
36
+
37
+ def conjunctive_polite
38
+ "まして"
39
+ end
40
+
41
+ def conjunctive_negative
42
+ "なくて"
43
+ end
44
+
45
+ def conjunctive_negative_polite
46
+ "ませんで"
47
+ end
48
+
49
+ def provisional
50
+ "れば"
51
+ end
52
+
53
+ def provisional_negative
54
+ "なければ"
55
+ end
56
+
57
+ def volitional
58
+ "よう"
59
+ end
60
+
61
+ def volitional_polite
62
+ "ましょう"
63
+ end
64
+
65
+ def imperative
66
+ if @type.code == "v1-s"
67
+ ""
68
+ else
69
+ "ろ"
70
+ end
71
+ end
72
+
73
+ def potential
74
+ "られる"
75
+ end
76
+
77
+ def potential_polite
78
+ "られます"
79
+ end
80
+
81
+ def potential_negative
82
+ "られない"
83
+ end
84
+
85
+ def potential_negative_polite
86
+ "られません"
87
+ end
88
+
89
+ def passive
90
+ "られる"
91
+ end
92
+
93
+ def passive_polite
94
+ "られます"
95
+ end
96
+
97
+ def passive_negative
98
+ "られない"
99
+ end
100
+
101
+ def passive_negative_polite
102
+ "られません"
103
+ end
104
+
105
+ def causative
106
+ "させる"
107
+ end
108
+
109
+ def causative_polite
110
+ "させます"
111
+ end
112
+
113
+ def causative_negative
114
+ "させない"
115
+ end
116
+
117
+ def causative_negative_polite
118
+ "させません"
119
+ end
120
+
121
+ def causative_passive
122
+ "させられる"
123
+ end
124
+
125
+ def causative_passive_polite
126
+ "させられます"
127
+ end
128
+
129
+ def causative_passive_negative
130
+ "させられない"
131
+ end
132
+
133
+ def causative_passive_negative_polite
134
+ "させられません"
135
+ end
136
+ end
137
+ end
@@ -0,0 +1,9 @@
1
+ require_relative "ichidan_verb_ending"
2
+
3
+ module Katsuyou
4
+ class KuruVerbEnding < IchidanVerbEnding
5
+ def imperative
6
+ "い"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,69 @@
1
+ require_relative "ichidan_verb_ending"
2
+
3
+ module Katsuyou
4
+ class SuruVerbEnding < IchidanVerbEnding
5
+ def potential
6
+ "る"
7
+ end
8
+
9
+ def potential_polite
10
+ "ます"
11
+ end
12
+
13
+ def potential_negative
14
+ "ない"
15
+ end
16
+
17
+ def potential_negative_polite
18
+ "ません"
19
+ end
20
+
21
+ def passive
22
+ "れる"
23
+ end
24
+
25
+ def passive_polite
26
+ "れます"
27
+ end
28
+
29
+ def passive_negative
30
+ "れない"
31
+ end
32
+
33
+ def passive_negative_polite
34
+ "れません"
35
+ end
36
+
37
+ def causative
38
+ "せる"
39
+ end
40
+
41
+ def causative_polite
42
+ "せます"
43
+ end
44
+
45
+ def causative_negative
46
+ "せない"
47
+ end
48
+
49
+ def causative_negative_polite
50
+ "せません"
51
+ end
52
+
53
+ def causative_passive
54
+ "せられる"
55
+ end
56
+
57
+ def causative_passive_polite
58
+ "せられます"
59
+ end
60
+
61
+ def causative_passive_negative
62
+ "せられない"
63
+ end
64
+
65
+ def causative_passive_negative_polite
66
+ "せられません"
67
+ end
68
+ end
69
+ end