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

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

Instance Method Summary collapse

Constructor Details

#initialize(verb) ⇒ PassiveVoiceSubjunctiveMoodPastperfectTenseStrategy

Returns a new instance of PassiveVoiceSubjunctiveMoodPastperfectTenseStrategy.



8
9
10
# File 'lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_subjunctive_mood_pastperfect_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
23
24
25
26
# File 'lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_subjunctive_mood_pastperfect_tense_strategy.rb', line 12

def apply!
  @verb.instance_eval do
    def passive_voice_subjunctive_mood_pastperfect_tense
      count = -1
      elements = PASS_PLUPERF_PAST_ENDINGS.map do |ending|
        count += 1
        (count <= 2 ?
          "[ #{TriplicateAndPluralizeFormatters.triplicate_and_genderize(passive_perfect_participle)} ]" :
          "[ #{TriplicateAndPluralizeFormatters.pluralize_participial_listing(passive_perfect_participle)} ]" )+ " " + ending
      end
      meaning = { :meaning => Linguistics::Latin::Verb::MEANINGS[:passive_voice_subjunctive_mood_pastperfect_tense] }
      TenseBlock.new(elements, meaning)
    end
  end
end