onvkv_seteyoposecetv 0.1.1
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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/Gemfile +13 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +12 -0
- data/lib/conjugators/action_verbs/future_tense.rb +191 -0
- data/lib/conjugators/action_verbs/imperative_mood.rb +153 -0
- data/lib/conjugators/action_verbs/past_one.rb +260 -0
- data/lib/conjugators/action_verbs/past_three.rb +294 -0
- data/lib/conjugators/action_verbs/past_two.rb +295 -0
- data/lib/conjugators/action_verbs/present_tense.rb +353 -0
- data/lib/conjugators/action_verbs/shared.rb +97 -0
- data/lib/conjugators/action_verbs.rb +12 -0
- data/lib/conjugators/ometv/past_three.rb +36 -0
- data/lib/conjugators/ometv/past_two.rb +36 -0
- data/lib/conjugators/ometv/present_tense.rb +36 -0
- data/lib/conjugators/ometv.rb +8 -0
- data/lib/conjugators/stative_verbs/past_one.rb +16 -0
- data/lib/conjugators/stative_verbs/present_tense.rb +212 -0
- data/lib/conjugators/stative_verbs.rb +7 -0
- data/lib/conjugators.rb +6 -0
- data/lib/onvkv_seteyoposecetv/version.rb +5 -0
- data/lib/onvkv_seteyoposecetv.rb +9 -0
- data/sig/onvkv_seteyoposecetv.rbs +4 -0
- metadata +72 -0
@@ -0,0 +1,97 @@
|
|
1
|
+
module Conjugators
|
2
|
+
module ActionVerbs
|
3
|
+
module Shared
|
4
|
+
def irregulars_two_way
|
5
|
+
irregulars.select {|k,v| v.size == 2}
|
6
|
+
end
|
7
|
+
|
8
|
+
def irregulars_three_way
|
9
|
+
irregulars.select {|k,v| v.size == 3}
|
10
|
+
end
|
11
|
+
|
12
|
+
def irregulars
|
13
|
+
@@irregulars ||= {
|
14
|
+
"cēyetv" => { 1 => "cēyetv", 2 => "cēhoyetv", 3 => "escēyetv" },
|
15
|
+
"fiketv" => { 1 => "fiketv", 2 => "fihoketv", 3 => "fvyecetv" },
|
16
|
+
"folotketv" => { 1 => "folotketv", 2 => "folothoketv", 3 => "folotecetv" },
|
17
|
+
"vfolotketv" => { 1 => "vfolotketv", 2 => "vfolothoketv", 3 => "vfolotecetv" },
|
18
|
+
"hoyvnetv" => { 1 => "hoyvnetv", 2 => "hoyvnhoyetv", 3 => "hoyvnecetv" },
|
19
|
+
"hueretv" => { 1 => "hueretv", 2 => "sehoketv", 3 => "svpakletv" },
|
20
|
+
"hvlketv" => { 1 => "hvlketv", 2 => "hvlhoketv", 3 => "hvlecetv" },
|
21
|
+
"hvkihketv" => { 1 => "hvkihketv", 2 => "hvkihhoketv", 3 => "hvkahecetv" },
|
22
|
+
"hvtvpketv" => { 1 => "hvtvpketv", 2 => "hvtvphoketv", 3 => "hvtvpecetv" },
|
23
|
+
"letketv" => { 1 => "letketv", 2 => "tokorketv", 3 => "pefatketv" },
|
24
|
+
"liketv" => { 1 => "liketv", 2 => "kaketv", 3 => "vpoketv" },
|
25
|
+
"lvtketv" => { 1 => "lvtketv", 2 => "yurketv", 3 => "pvlvtketv" },
|
26
|
+
"nocetv" => { 1 => "nocetv", 2 => "nochoyetv", 3 => "nocicetv" },
|
27
|
+
"’rem oretv"=> { 1 => "’rem oretv",2 => "’rem orhoyetv",3 => "’rem oricetv"},
|
28
|
+
"oretv" => { 1 => "oretv", 2 => "orhoyetv", 3 => "oricetv" },
|
29
|
+
"ossetv" => { 1 => "ossetv", 2 => "wolketv", 3 => "sossetv" },
|
30
|
+
"pihketv" => { 1 => "pihketv", 2 => "pihhoketv", 3 => "pahecetv" },
|
31
|
+
"solotketv" => { 1 => "solotketv", 2 => "solothoketv", 3 => "solotecetv" },
|
32
|
+
"somketv" => { 1 => "somketv", 2 => "somhoketv", 3 => "somecetv" },
|
33
|
+
"tasketv" => { 1 => "tasketv", 2 => "tashoketv", 3 => "tasecetv" },
|
34
|
+
"tiketv" => { 1 => "tiketv", 2 => "tihoketv", 3 => "tvyecetv" },
|
35
|
+
"tvmketv" => { 1 => "tvmketv", 2 => "tvmhoketv", 3 => "tvmecetv" },
|
36
|
+
"vcemketv" => { 1 => "vcemketv", 2 => "vcemhoketv", 3 => "vcemecetv" },
|
37
|
+
"vlvketv" => { 1 => "vlvketv", 2 => "alvhoketv", 3 => "yicetv" },
|
38
|
+
"vretv" => { 1 => "vretv", 2 => "welvketv", 3 => "fulletv" },
|
39
|
+
"vhvretv" => { 1 => "vhvretv", 2 => "vwelvketv", 3 => "vfulletv" },
|
40
|
+
"ohvretv" => { 1 => "ohvretv", 2 => "ohwelvketv", 3 => "ohfulletv" },
|
41
|
+
"vtetv" => { 1 => "vtetv", 2 => "vthoyetv", 3 => "vwetv" },
|
42
|
+
"vwelvpketv"=> { 1 => "vwelvpketv",2 => "vwelvphoketv",3 => "vwelvpecetv"},
|
43
|
+
"vyetv" => { 1 => "vyetv", 2 => "vhoyetv", 3 => "vpeyetv" },
|
44
|
+
"wakketv" => { 1 => "wakketv", 2 => "wakhoketv", 3 => "lomhetv" },
|
45
|
+
"wohketv" => { 1 => "wohketv", 2 => "wohhoketv", 3 => "wohecetv" },
|
46
|
+
"yefolketv" => { 1 => "yefolketv", 2 => "yefolhoketv", 3 => "yefolecetv" },
|
47
|
+
"yvkvpetv" => { 1 => "yvkvpetv", 2 => "yvkvphoketv", 3 => "yvkvpvketv" },
|
48
|
+
"vhvpalofketv" => { 1 => "vhvpalofketv", 2 => "vhvpalofhoketv", 3 => "vhvpalofecetv" },
|
49
|
+
# Two way
|
50
|
+
"eletv" => { 1 => "eletv", 2 => "pvsvtketv" },
|
51
|
+
"akpiketv" => { 1 => "akpiketv", 2 => "aktehetv" },
|
52
|
+
"tekkeketv" => { 1 => "tekkeketv", 2 => "tekkēteketv" },
|
53
|
+
"cehvlletv" => { 1 => "cehvlletv", 2 => "cehvlhoyetv" },
|
54
|
+
"cvpketv" => { 1 => "cvpketv", 2 => "cvpcvketv" },
|
55
|
+
"cvyayvketv" => { 1 => "cvyayvketv", 2 => "cvyayvhoyetv" },
|
56
|
+
"vpiketv" => { 1 => "vpiketv", 2 => "vtehketv" },
|
57
|
+
"etefvlahletv" => { 1 => "etefvlahletv", 2 => "etefvlvpketv" },
|
58
|
+
"opunvyetv" => { 1 => "opunvyetv", 2 => "opunahoyetv" },
|
59
|
+
"haketv" => { 1 => "haketv", 2 => "hahvketv" },
|
60
|
+
"hesaketv" => { 1 => "hesaketv", 2 => "hesahoketv" },
|
61
|
+
"hvkvnceropotketv" => { 1 => "hvkvnceropotketv", 2 => "hvkvnceropothoketv" },
|
62
|
+
"kvcketv" => { 1 => "kvcketv", 2 => "kvcēketv" },
|
63
|
+
"ocetv" => { 1 => "ocetv", 2 => "svsetv" },
|
64
|
+
"taktekaksetv" => { 1 => "taktekaksetv", 2 => "taktekvstvketv" },
|
65
|
+
"tiyetv" => { 1 => "tiyetv", 2 => "tihoyetv" },
|
66
|
+
"tonetv" => { 1 => "tonetv", 2 => "tontuecetv" },
|
67
|
+
"tulketv" => { 1 => "tulketv", 2 => "tultoketv" },
|
68
|
+
"vcekelletv" => { 1 => "vcekelletv", 2 => "vcekelhoyetv" },
|
69
|
+
"vccetv" => { 1 => "vccetv", 2 => "vchoyetv" },
|
70
|
+
"vhocefketv" => { 1 => "vhocefketv", 2 => "vhocefhoketv" },
|
71
|
+
"vhopvnketv" => { 1 => "vhopvnketv", 2 => "vhopvnhoketv" },
|
72
|
+
"vkvrpetv" => { 1 => "vkvrpetv", 2 => "vkvrkvpetv" },
|
73
|
+
"vlokpetv" => { 1 => "vlokpetv", 2 => "vloklopetv" },
|
74
|
+
"vnvtaksetv" => { 1 => "vnvtaksetv", 2 => "vnvtvsnvketv" },
|
75
|
+
"vpeletv" => { 1 => "vpeletv", 2 => "vpelhoyetv" },
|
76
|
+
"vsokketv" => { 1 => "vsokketv", 2 => "vsokhoketv" },
|
77
|
+
"vtvrketv" => { 1 => "vtvrketv", 2 => "vtvrtvketv" },
|
78
|
+
"wiketv" => { 1 => "wiketv", 2 => "wihoketv" },
|
79
|
+
"wvswaketv" => { 1 => "wvswaketv", 2 => "wvswahoketv" },
|
80
|
+
"yvfketv" => { 1 => "yvfketv", 2 => "yvfyvketv" },
|
81
|
+
}
|
82
|
+
end
|
83
|
+
|
84
|
+
def person_markers
|
85
|
+
@@person_markers ||= {
|
86
|
+
'1ps' => %w{ i },
|
87
|
+
'2ps' => %w{ etske ecke ecce etce etse },
|
88
|
+
'3ps' => %w{ e },
|
89
|
+
'1pp' => %w{ ē },
|
90
|
+
'2pp' => %w{ atske acke atse },
|
91
|
+
'3pp' => %w{ ake },
|
92
|
+
}
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require_relative 'action_verbs/shared'
|
2
|
+
require_relative 'action_verbs/future_tense'
|
3
|
+
require_relative 'action_verbs/imperative_mood'
|
4
|
+
require_relative 'action_verbs/past_one'
|
5
|
+
require_relative 'action_verbs/past_three'
|
6
|
+
require_relative 'action_verbs/past_two'
|
7
|
+
require_relative 'action_verbs/present_tense'
|
8
|
+
|
9
|
+
module Conjugators
|
10
|
+
module ActionVerbs
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Conjugators
|
2
|
+
module Ometv
|
3
|
+
class PastThree
|
4
|
+
def initialize(tense)
|
5
|
+
@tense = tense
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.person_conjugations
|
9
|
+
{
|
10
|
+
'1ps' => %w{towimvts},
|
11
|
+
'2ps' => %w{towetskemvts toweckemvts toweccemvts towetcemvts },
|
12
|
+
'3ps' => %w{towemvts},
|
13
|
+
'1pp' => %w{towēyemvts},
|
14
|
+
'2pp' => %w{towatskemvts towackemvts},
|
15
|
+
'3pp' => %w{towakemvts}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def conjugate!
|
20
|
+
{
|
21
|
+
'1ps' => conjugate('1ps'),
|
22
|
+
'2ps' => conjugate('2ps'),
|
23
|
+
'3ps' => conjugate('3ps'),
|
24
|
+
'1pp' => conjugate('1pp'),
|
25
|
+
'2pp' => conjugate('2pp'),
|
26
|
+
'3pp' => conjugate('3pp')
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def conjugate(person)
|
32
|
+
self.class.person_conjugations.fetch(person)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Conjugators
|
2
|
+
module Ometv
|
3
|
+
class PastTwo
|
4
|
+
def initialize(tense)
|
5
|
+
@tense = tense
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.person_conjugations
|
9
|
+
{
|
10
|
+
'1ps' => %w{towivnks},
|
11
|
+
'2ps' => %w{towetskvnks toweckvnks toweccvnks towetcvnks },
|
12
|
+
'3ps' => %w{towvnks},
|
13
|
+
'1pp' => %w{towēyvnks},
|
14
|
+
'2pp' => %w{towatskvnks towackvnks},
|
15
|
+
'3pp' => %w{towakvnks}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def conjugate!
|
20
|
+
{
|
21
|
+
'1ps' => conjugate('1ps'),
|
22
|
+
'2ps' => conjugate('2ps'),
|
23
|
+
'3ps' => conjugate('3ps'),
|
24
|
+
'1pp' => conjugate('1pp'),
|
25
|
+
'2pp' => conjugate('2pp'),
|
26
|
+
'3pp' => conjugate('3pp')
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def conjugate(person)
|
32
|
+
self.class.person_conjugations.fetch(person)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Conjugators
|
2
|
+
module Ometv
|
3
|
+
class PresentTense
|
4
|
+
def initialize(tense)
|
5
|
+
@tense = tense
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.person_conjugations
|
9
|
+
@person_conjugations ||= {
|
10
|
+
'1ps' => %w{towis},
|
11
|
+
'2ps' => %w{towetskes toweckes towecces tontces tonckes tontses },
|
12
|
+
'3ps' => %w{tos},
|
13
|
+
'1pp' => %w{towēs},
|
14
|
+
'2pp' => %w{towatskes towackes towatses }, # towat
|
15
|
+
'3pp' => %w{towakes}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
def conjugate!
|
20
|
+
@@conjugations ||= {
|
21
|
+
'1ps' => conjugate('1ps'),
|
22
|
+
'2ps' => conjugate('2ps'),
|
23
|
+
'3ps' => conjugate('3ps'),
|
24
|
+
'1pp' => conjugate('1pp'),
|
25
|
+
'2pp' => conjugate('2pp'),
|
26
|
+
'3pp' => conjugate('3pp')
|
27
|
+
}
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def conjugate(person)
|
32
|
+
self.class.person_conjugations.fetch(person)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Conjugators
|
2
|
+
module StativeVerbs
|
3
|
+
class PastOne < PresentTense
|
4
|
+
private
|
5
|
+
|
6
|
+
def conjugate(type:, tense:)
|
7
|
+
case type
|
8
|
+
when :basic_present
|
9
|
+
send(tense) + "tis"
|
10
|
+
when :tos_auxiliary
|
11
|
+
[send(tense), "towis"].join(" ")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,212 @@
|
|
1
|
+
module Conjugators
|
2
|
+
module StativeVerbs
|
3
|
+
class PresentTense
|
4
|
+
# Note, MVSKOKE language here
|
5
|
+
def initialize(verb)
|
6
|
+
@verb = verb
|
7
|
+
raise "Invalid verb" unless @verb.end_with?("ē") || @verb.end_with?("e")
|
8
|
+
@verb = @verb.gsub(/e$/, "ē")
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.irregulars
|
12
|
+
{
|
13
|
+
"cutkē" => "lopockē",
|
14
|
+
"cvfeknē" => "cvfencvkē",
|
15
|
+
"cvmpē" => "cvmcvpē",
|
16
|
+
"cvpakkē" => "cvpakhokē",
|
17
|
+
"cvpkē" => "cvpcvkē",
|
18
|
+
"elē" => "pvsvtkē",
|
19
|
+
"enokkē" => "enokhokē",
|
20
|
+
"fvckē" => "fvcfvkē",
|
21
|
+
"fvmpē" => "fvmfvpē",
|
22
|
+
"fvskē" => "fvsfvkē",
|
23
|
+
"hesakē" => "hesahokē",
|
24
|
+
"hiyē" => "hihoyē",
|
25
|
+
"hvsvtkē" => "hvsvthvkē",
|
26
|
+
"kocoknē" => "koconcokē",
|
27
|
+
"kvlkē" => "kvlkvkē",
|
28
|
+
"kvlaksē" => "kvlvskvkē",
|
29
|
+
"kvrpē" => "kvrkvpē",
|
30
|
+
"kvsvppē" => "kvsvphoyē",
|
31
|
+
"leskē" => "leslekē",
|
32
|
+
"lekvcwē" => "lekvclewē",
|
33
|
+
"lowakē" => "lowalokē",
|
34
|
+
"lowvckē" => "lowvclokē",
|
35
|
+
"lvpotkē" => "lvpotlvkē",
|
36
|
+
"lvokē" => "lvolvkē",
|
37
|
+
"lvstē" => "lvslvtē",
|
38
|
+
"mahē" => "mahmvyē",
|
39
|
+
"mocvsē" => "mocvsvkē",
|
40
|
+
"ohcakhē" => "ohcakcvhē",
|
41
|
+
"ohrvnkē" => "ohrvnrvkē",
|
42
|
+
"pakkē" => "pakpvkē",
|
43
|
+
"polokē" => "polopokē",
|
44
|
+
"pvfnē" => "pvfpvnē",
|
45
|
+
"rakkē" => "rakrvkē",
|
46
|
+
"sofkē" => "sofsokē",
|
47
|
+
"sopakhvtkē" => "sopakhvthvkē",
|
48
|
+
"tefnē" => "teftenē",
|
49
|
+
"tvkvcwē" => "tvkvctvwē",
|
50
|
+
"vholwvkē" => "vholwahokē",
|
51
|
+
"akhotkē" => "akhothokē",
|
52
|
+
"vcakhē" => "vcakcvhē",
|
53
|
+
"ak-vcakhē" => "ak-vcakcvhē",
|
54
|
+
"cakhē" => "cakcvhē",
|
55
|
+
"cekfē" => "cekcefē",
|
56
|
+
"cekhē" => "cekaknē", # also cekhvkē
|
57
|
+
"cetakkē" => "cetakcekē",
|
58
|
+
"cufoknē" => "cufoncokē",
|
59
|
+
"cvlaknē" => "cvlvncvkē",
|
60
|
+
"cvneksē" => "cvnescvkē",
|
61
|
+
"etepvllvkē" => "etepvllapvkē",
|
62
|
+
"tekenkē" => "tekentekē",
|
63
|
+
"tvnkē" => "tvntvkē",
|
64
|
+
"tvpeksē" => "tvpestvkē",
|
65
|
+
"tvphē" => "tvptvhē",
|
66
|
+
"vcakē" => "vcacvkē",
|
67
|
+
"vcvnkē" => "vcvncvkē",
|
68
|
+
"vfvleknē" => "vfvlenfvkē",
|
69
|
+
"vhorkē" => "vhorhokē",
|
70
|
+
"vpvtvptvkē" => "vpvtvtapvkē",
|
71
|
+
"wvnhē" => "wvnwvhē",
|
72
|
+
"wvpaksē" => "wvpvswvkē",
|
73
|
+
"yakpē" => "yakyvpē",
|
74
|
+
|
75
|
+
}
|
76
|
+
end
|
77
|
+
|
78
|
+
def conjugate!
|
79
|
+
{
|
80
|
+
verb: @verb,
|
81
|
+
first_person_singular: {
|
82
|
+
basic_present: conjugate(tense: :conjugate_1ps, type: :basic_present),
|
83
|
+
tos_auxiliary: conjugate(tense: :conjugate_1ps, type: :tos_auxiliary)
|
84
|
+
},
|
85
|
+
second_person_singular: {
|
86
|
+
basic_present: conjugate(tense: :conjugate_2ps, type: :basic_present),
|
87
|
+
tos_auxiliary: conjugate(tense: :conjugate_2ps, type: :tos_auxiliary)
|
88
|
+
},
|
89
|
+
third_person_singular: {
|
90
|
+
basic_present: conjugate(tense: :conjugate_3ps, type: :basic_present),
|
91
|
+
tos_auxiliary: conjugate(tense: :conjugate_3ps, type: :tos_auxiliary)
|
92
|
+
},
|
93
|
+
first_person_plural: {
|
94
|
+
basic_present: conjugate(tense: :conjugate_1pp, type: :basic_present),
|
95
|
+
tos_auxiliary: conjugate(tense: :conjugate_1pp, type: :tos_auxiliary)
|
96
|
+
},
|
97
|
+
second_person_plural: {
|
98
|
+
basic_present: conjugate(tense: :conjugate_2pp, type: :basic_present),
|
99
|
+
tos_auxiliary: conjugate(tense: :conjugate_2pp, type: :tos_auxiliary)
|
100
|
+
},
|
101
|
+
third_person_plural: {
|
102
|
+
basic_present: conjugate(tense: :conjugate_3pp, type: :basic_present),
|
103
|
+
tos_auxiliary: conjugate(tense: :conjugate_3pp, type: :tos_auxiliary)
|
104
|
+
}
|
105
|
+
}
|
106
|
+
end
|
107
|
+
|
108
|
+
private
|
109
|
+
def conjugate(type:, tense:)
|
110
|
+
case type
|
111
|
+
when :basic_present
|
112
|
+
send(tense) + ?s
|
113
|
+
when :tos_auxiliary
|
114
|
+
[send(tense), "tos"].join(" ")
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def conjugate_1ps
|
119
|
+
case @verb[0]
|
120
|
+
when "a", "ē"
|
121
|
+
"vca" + @verb[1..-1]
|
122
|
+
when "v"
|
123
|
+
"vcv" + @verb[1..-1]
|
124
|
+
when "o"
|
125
|
+
"vc" + @verb
|
126
|
+
when "e"
|
127
|
+
"cv" + @verb[1..-1]
|
128
|
+
else
|
129
|
+
"cv" + @verb
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def conjugate_2ps
|
134
|
+
case @verb[0]
|
135
|
+
when "a"
|
136
|
+
"ecē" + @verb[1..-1]
|
137
|
+
when"ē"
|
138
|
+
"ecē" + @verb[1..-1]
|
139
|
+
when "v"
|
140
|
+
"ece" + @verb
|
141
|
+
when "o"
|
142
|
+
"ec" + @verb
|
143
|
+
when "e"
|
144
|
+
"ce" + @verb[1..-1]
|
145
|
+
else
|
146
|
+
"ce" + @verb
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def conjugate_3ps
|
151
|
+
@verb
|
152
|
+
end
|
153
|
+
|
154
|
+
def conjugate_1pp
|
155
|
+
verb = @verb
|
156
|
+
verb = irregulars.fetch(@verb, @verb)
|
157
|
+
|
158
|
+
case verb[0]
|
159
|
+
when "a"
|
160
|
+
"epo" + verb[1..-1]
|
161
|
+
when"ē"
|
162
|
+
"epo" + verb[1..-1]
|
163
|
+
when "v"
|
164
|
+
"epo" + verb[1..-1]
|
165
|
+
when "o"
|
166
|
+
"ep" + verb
|
167
|
+
when "e"
|
168
|
+
"pu" + verb[1..-1]
|
169
|
+
else
|
170
|
+
"pu" + verb
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def conjugate_2pp
|
175
|
+
verb = irregulars.fetch(@verb, @verb)
|
176
|
+
|
177
|
+
simple_case = case verb[0]
|
178
|
+
when "a"
|
179
|
+
"ecē" + verb[1..-1]
|
180
|
+
when"ē"
|
181
|
+
"ecē" + verb[1..-1]
|
182
|
+
when "v"
|
183
|
+
"ece" + verb
|
184
|
+
when "o"
|
185
|
+
"ec" + verb
|
186
|
+
when "e"
|
187
|
+
"ce" + verb[1..-1]
|
188
|
+
else
|
189
|
+
"ce" + verb
|
190
|
+
end
|
191
|
+
|
192
|
+
if verb == @verb
|
193
|
+
simple_case.gsub(/ē$/, "vkē")
|
194
|
+
else
|
195
|
+
simple_case
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
def conjugate_3pp
|
200
|
+
if irregulars[@verb]
|
201
|
+
irregulars[@verb]
|
202
|
+
else
|
203
|
+
@verb.gsub(/ē$/, "vkē")
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def irregulars
|
208
|
+
self.class.irregulars
|
209
|
+
end
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
data/lib/conjugators.rb
ADDED
metadata
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: onvkv_seteyoposecetv
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tad Hosford
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-04-05 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Just relocating some code to make it sharable
|
14
|
+
email:
|
15
|
+
- tad.hosford@gmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- CHANGELOG.md
|
21
|
+
- CODE_OF_CONDUCT.md
|
22
|
+
- Gemfile
|
23
|
+
- LICENSE.txt
|
24
|
+
- README.md
|
25
|
+
- Rakefile
|
26
|
+
- lib/conjugators.rb
|
27
|
+
- lib/conjugators/action_verbs.rb
|
28
|
+
- lib/conjugators/action_verbs/future_tense.rb
|
29
|
+
- lib/conjugators/action_verbs/imperative_mood.rb
|
30
|
+
- lib/conjugators/action_verbs/past_one.rb
|
31
|
+
- lib/conjugators/action_verbs/past_three.rb
|
32
|
+
- lib/conjugators/action_verbs/past_two.rb
|
33
|
+
- lib/conjugators/action_verbs/present_tense.rb
|
34
|
+
- lib/conjugators/action_verbs/shared.rb
|
35
|
+
- lib/conjugators/ometv.rb
|
36
|
+
- lib/conjugators/ometv/past_three.rb
|
37
|
+
- lib/conjugators/ometv/past_two.rb
|
38
|
+
- lib/conjugators/ometv/present_tense.rb
|
39
|
+
- lib/conjugators/stative_verbs.rb
|
40
|
+
- lib/conjugators/stative_verbs/past_one.rb
|
41
|
+
- lib/conjugators/stative_verbs/present_tense.rb
|
42
|
+
- lib/onvkv_seteyoposecetv.rb
|
43
|
+
- lib/onvkv_seteyoposecetv/version.rb
|
44
|
+
- sig/onvkv_seteyoposecetv.rbs
|
45
|
+
homepage: https://github.com/rthbound/onvkv_seteyoposecetv
|
46
|
+
licenses:
|
47
|
+
- MIT
|
48
|
+
metadata:
|
49
|
+
allowed_push_host: https://rubygems.org
|
50
|
+
source_code_uri: https://github.com/rthbound/onvkv_seteyoposecetv
|
51
|
+
changelog_uri: https://github.com/rthbound/onvkv_seteyoposecetv/blob/main/CHANGELOG.md
|
52
|
+
homepage_uri: https://github.com/rthbound/onvkv_seteyoposecetv
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
require_paths:
|
56
|
+
- lib
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.6.0
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
requirements: []
|
68
|
+
rubygems_version: 3.4.10
|
69
|
+
signing_key:
|
70
|
+
specification_version: 4
|
71
|
+
summary: Extracting conjugator library code from https://www.nokose-oklane.com
|
72
|
+
test_files: []
|