class Linguistics::Latin::Verb::LatinVerb::SupineInferrer

Public Class Methods

new(perfect_passive_participle) click to toggle source
# File lib/latinverb_irregular_participles_retriever/supine_inferrer.rb, line 6
def initialize(perfect_passive_participle)
  @perfect_passive_participle = String(perfect_passive_participle)
end

Public Instance Methods

supine() click to toggle source
# File lib/latinverb_irregular_participles_retriever/supine_inferrer.rb, line 10
def supine
  return {} unless accusative_supine
  {:ablative => ablative_supine, :accusative => accusative_supine}
end

Private Instance Methods

ablative_supine() click to toggle source
# File lib/latinverb_irregular_participles_retriever/supine_inferrer.rb, line 17
def ablative_supine
  return @ablative_supine if @ablative_supine
  return "" if ablative_supine_base.nil?
  String(ablative_supine_base + "ū")
end
ablative_supine_base() click to toggle source
# File lib/latinverb_irregular_participles_retriever/supine_inferrer.rb, line 23
def ablative_supine_base
  return nil if accusative_supine.nil?
  String(accusative_supine.sub(/^(.*)u(m)$/, "\\1"))
end
accusative_supine() click to toggle source
# File lib/latinverb_irregular_participles_retriever/supine_inferrer.rb, line 28
def accusative_supine
  split_participle_string = @perfect_passive_participle.split(/\s+/).first
  return nil if  split_participle_string.nil?
  @accusative_supine ||= String(split_participle_string.sub(/s\z/,'m'))
end