class Linguistics::Latin::Verb::LatinVerb::StemDeriver

Constants

FIRST_CONJUGATION_IDENTIFYING_SUFFIX
FOURTH_CONJUGATION_IDENTIFYING_SUFFIX
SECOND_CONJUGATION_IDENTIFYING_SUFFIX
THIRDIO_CONJUGATION_IDENTIFYING_SUFFIX_ACTIVE_INDICATIVE_PRESENT_FIRST_SINGULAR
THIRDIO_STEM_PARTICLE
THIRD_CONJUGATION_IDENTIFYING_SUFFIX
THIRD_STEM_PARTICLE

Public Class Methods

new(verb, opts = {}) click to toggle source
# File lib/latinverb_stem_deriver.rb, line 17
def initialize(verb, opts = {})
  @verb = verb
  @opts = opts
end

Public Instance Methods

participial_stem() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 30
def participial_stem
  return $1 if present_active_infinitive.to_s =~ FIRST_CONJUGATION_IDENTIFYING_SUFFIX
  return $1 if present_active_infinitive.to_s =~ SECOND_CONJUGATION_IDENTIFYING_SUFFIX
  return $1 + calculate_particle($1) if present_active_infinitive.to_s =~ THIRD_CONJUGATION_IDENTIFYING_SUFFIX
  return $1 + THIRDIO_STEM_PARTICLE if present_active_infinitive.to_s =~ FOURTH_CONJUGATION_IDENTIFYING_SUFFIX
end
stem() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 22
def stem
  return calculate_deponent_proxy_stem unless verb_is_regular?
  return $1 if present_active_infinitive =~ FIRST_CONJUGATION_IDENTIFYING_SUFFIX
  return $1 if present_active_infinitive =~ SECOND_CONJUGATION_IDENTIFYING_SUFFIX
  return $1 if present_active_infinitive =~ THIRD_CONJUGATION_IDENTIFYING_SUFFIX
  return $1 if present_active_infinitive =~ FOURTH_CONJUGATION_IDENTIFYING_SUFFIX
end

Private Instance Methods

calculate_deponent_proxy_stem() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 43
def calculate_deponent_proxy_stem
  proxy_string.split(/\s+/)[1]
end
calculate_particle(portion) click to toggle source
# File lib/latinverb_stem_deriver.rb, line 68
def calculate_particle(portion)
  first_person_singular =~ THIRDIO_CONJUGATION_IDENTIFYING_SUFFIX_ACTIVE_INDICATIVE_PRESENT_FIRST_SINGULAR ? THIRDIO_STEM_PARTICLE : THIRD_STEM_PARTICLE
end
deponent_or_impersonal?() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 64
def deponent_or_impersonal?
  @verb.deponent? || @verb.semideponent? || @verb.impersonal?
end
first_person_singular() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 60
def first_person_singular
  @verb.first_person_singular
end
original_string() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 52
def original_string
  @verb.original_string
end
present_active_infinitive() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 56
def present_active_infinitive
  @verb.present_active_infinitive
end
proxy_string() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 47
def proxy_string
  klass = (@opts[:proxy_string_deriver] || Linguistics::Latin::Verb::LatinVerb::DeponentStringDeriver)
  klass.new(original_string).proxy_string
end
verb_is_regular?() click to toggle source
# File lib/latinverb_stem_deriver.rb, line 39
def verb_is_regular?
  @verb.regular?
end