Class: Linguistics::Latin::Verb::LatinVerb::Mutators::Irregular::Revivifier::InfinitivesBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/latinverb/tense_method_applicator/mutators/irregular/infinitives_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(verb, infinitives_structure) ⇒ InfinitivesBuilder

Returns a new instance of InfinitivesBuilder.



9
10
11
12
13
# File 'lib/latinverb/tense_method_applicator/mutators/irregular/infinitives_builder.rb', line 9

def initialize(verb, infinitives_structure)
  @verb = verb
  @infinitives_structure = infinitives_structure
  mutate!
end

Instance Method Details

#mutate!Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/latinverb/tense_method_applicator/mutators/irregular/infinitives_builder.rb', line 15

def mutate!
  i = OpenStruct.new(@infinitives_structure)

  @verb.instance_exec do
    @_infinitives = i
    def present_active_infinitive; @_infinitives.present_active_infinitive; end
    def present_passive_infinitive; @_infinitives.present_passive_infinitive; end
    def perfect_active_infinitive; @_infinitives.perfect_active_infinitive; end
    def perfect_passive_infinitive; @_infinitives.perfect_passive_infinitive; end
    def future_passive_infinitive; @_infinitives.future_passive_infinitive; end
    def future_active_infinitive; @_infinitives.future_active_infinitive; end
  end
end