Module: Kernel

Defined in:
lib/latinirb/latinirb_paradigmatic_verbs.rb

Constant Summary collapse

LatinVerb =
Linguistics::Latin::Verb::LatinVerb

Instance Method Summary collapse

Instance Method Details

#chart(latin_verb = nil) ⇒ Object



22
23
24
25
26
# File 'lib/latinirb/latinirb_paradigmatic_verbs.rb', line 22

def chart(latin_verb=nil)
  puts "USAGE: chart (a_latin_verb|latin_verb_string)" if latin_verb.nil?
  verb = is_latinverb?(latin_verb) ? latin_verb : verb_for_string(latin_verb)
  puts Linguistics::Latin::Verb::LatinVerb::ChartPresenter.new(verb).chart
end

#is_latinverb?(possible_latin_verb) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/latinirb/latinirb_paradigmatic_verbs.rb', line 28

def is_latinverb?(possible_latin_verb)
  possible_latin_verb.methods.any?{|m| m.match(/.*voice.*mood.*tense/)}
end

#load_seedfileObject Also known as: s



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/latinirb/latinirb_paradigmatic_verbs.rb', line 40

def load_seedfile
  if File.exists?("seedfile.txt")
    File.open("seedfile.txt")
      .readlines
      .to_a
      .filter { |e| e =~ /\w+/ }
      .reduce(SEED) do |memo, l|
      k, v = l.split(':')
      memo[k] = verb_for_string(v)
      memo
    end
  end
  keys = SEED.keys
  if keys.count > 0 && keys.count < 10
    puts "Imported #{SEED.keys.count} items:"
    keys.each { |k| puts k }
  end
end

#verb_for_string(verb_string) ⇒ Object Also known as: v



32
33
34
35
36
37
38
# File 'lib/latinirb/latinirb_paradigmatic_verbs.rb', line 32

def verb_for_string(verb_string)
  if verb_string !~ /\\/
    raise ArgumentError.new "No \\ characters detected in #{verb_string}. Use single-quote to ensure they aren't escaped."
  end
  macronized_string = Text::Latex::Util::Macronconversions.convert(verb_string, 'mc').gsub(',', '')
  Linguistics::Latin::Verb::LatinVerb.new(macronized_string)
end