Class: Linguistics::Latin::Verb::ImperativeBlock

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Phonographia
Defined in:
lib/latinverb/imperative_block.rb,
lib/latinverb/imperative_block/imperative_rule_factory.rb

Defined Under Namespace

Classes: ImperativeRuleFactory

Instance Method Summary collapse

Constructor Details

#initialize(stem, plural_present_imperative, verb) ⇒ ImperativeBlock

Returns a new instance of ImperativeBlock.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/latinverb/imperative_block.rb', line 10

def initialize(stem, plural_present_imperative, verb)
  @stem = stem
  @plural_present_imperative = plural_present_imperative
  @verb = verb

  if @verb.classification == Linguistics::Latin::Verb::Classification::Deponent
    @results = form_imperative_base_for_deponent
    add_additional_imperative_forms_for_deponent
  else
    @results = form_imperative_base
    add_additional_imperative_forms
  end

  @results.map{|v| fix_macrons v}
end

Instance Method Details

#add_additional_imperative_forms_for_deponentObject



30
31
# File 'lib/latinverb/imperative_block.rb', line 30

def add_additional_imperative_forms_for_deponent
end

#form_imperative_base_for_deponentObject



26
27
28
# File 'lib/latinverb/imperative_block.rb', line 26

def form_imperative_base_for_deponent
  [@verb.stem, @verb.active_voice_indicative_mood_present_tense.plural_number_second_person, @verb.active_voice_indicative_mood_present_tense_third_person_singular_number.sub(/tur\z/, 'tor')]
end

#future(qualifier = nil) ⇒ Object



41
42
43
# File 'lib/latinverb/imperative_block.rb', line 41

def future(qualifier=nil)
  return @results[2,4] if qualifier.nil?
end

#present(qualifier = nil) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/latinverb/imperative_block.rb', line 45

def present(qualifier=nil)
  j = @results[0,2]
  return j if qualifier.nil?
  qualifier = qualifier.to_s
  return j[0] if qualifier =~ /singular/
  return j[1] if qualifier =~ /plural/
end

#present_tense_plural_numberObject



37
38
39
# File 'lib/latinverb/imperative_block.rb', line 37

def present_tense_plural_number
  present('plural')
end

#present_tense_singular_numberObject



33
34
35
# File 'lib/latinverb/imperative_block.rb', line 33

def present_tense_singular_number
  present('singular')
end