katsuyou 1.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.
@@ -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