Class: Linguistics::Latin::Verb::LatinVerb::Mutators::Invariant::ActiveVoiceIndicativeMoodPerfectTenseStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_perfect_tense_strategy.rb

Instance Method Summary collapse

Constructor Details

#initialize(verb) ⇒ ActiveVoiceIndicativeMoodPerfectTenseStrategy

Returns a new instance of ActiveVoiceIndicativeMoodPerfectTenseStrategy.



8
9
10
# File 'lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_perfect_tense_strategy.rb', line 8

def initialize(verb)
  @verb = verb
end

Instance Method Details

#apply!Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_perfect_tense_strategy.rb', line 12

def apply!
  @verb.instance_eval do
    def active_voice_indicative_mood_perfect_tense
      substem = first_person_perfect[0..-2]
      elements = APERF_ENDINGS.flat_map{|x| substem + x.to_s}
      elements.unshift first_person_perfect
      meaning = { :meaning => MEANINGS[:active_voice_indicative_mood_perfect_tense] }
      return TenseBlock.new(elements, meaning)
    end
  end
end