Class: Conjugators::ActionVerbs::PastOne

Inherits:
Object
  • Object
show all
Extended by:
Shared
Defined in:
lib/conjugators/action_verbs/past_one.rb

Constant Summary collapse

UE_CK_PATTERN =

Constants for diphthong patterns

/ue[ck]\z/.freeze
UE_OTHER_PATTERN =

ue followed by other consonants

/ue[^ck]\z/.freeze
VO_PATTERN =

vo followed by k

/vok\z/.freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Shared

irregulars_three_way, irregulars_two_way, person_markers

Constructor Details

#initialize(verb, irregular_pattern: nil) ⇒ PastOne

SHORTEN, STRESS, ASPIRATE final vowel



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/conjugators/action_verbs/past_one.rb', line 12

def initialize(verb, irregular_pattern: nil)
  @verb = verb

  @irregular_pattern = irregular_pattern

  raise "Invalid verb. Verb must end with 'etv'." unless @verb.end_with?("etv")

  # verb stem is everything but the ending 'etv'
  @verb_stem = @verb.gsub(/etv\z/, "")
  @irregular = !!irregulars[@verb]
end

Class Method Details

.basic_hgradesObject



265
266
267
268
269
270
271
272
273
274
275
# File 'lib/conjugators/action_verbs/past_one.rb', line 265

def self.basic_hgrades
  {
    'a' => 'vh',
    'e' => 'eh',
    'ē' => 'eh',
    'i' => 'ih',
    'o' => 'oh',
    'u' => 'uh',
    'v' => 'vh',
  }
end

Instance Method Details

#conjugate!Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/conjugators/action_verbs/past_one.rb', line 24

def conjugate!
  {
    verb: @verb,
    first_person_singular: {
      basic_past_one:              conjugate(tense: :conjugate_1ps, type: :basic_past_one),
    },
    second_person_singular: {
      basic_past_one:              conjugate(tense: :conjugate_2ps, type: :basic_past_one),
    },
    third_person_singular: {
      basic_past_one:              conjugate(tense: :conjugate_3ps, type: :basic_past_one),
    },
    first_person_plural: {
      basic_past_one:              conjugate(tense: :conjugate_1pp, type: :basic_past_one),
    },
    second_person_plural: {
      basic_past_one:              conjugate(tense: :conjugate_2pp, type: :basic_past_one),
    },
    third_person_plural: {
      basic_past_one:              conjugate(tense: :conjugate_3pp, type: :basic_past_one),
    }
  }
end