class Tracinho::WordClassifier
WordClassifier
is the responsible for classifying a word. It gives the verb, the verb tense and the full classification of a Word
.
Example:
word = Tracinho::Word.new('comeste') classifier = Tracinho::WordClassifier.new(word) classifier.verb # => "comer" classifier.verb_tense # => "pretérito perfeito do indicativo" classifier.full_classification # => "Segunda pessoa do singular do pretérito perfeito do indicativo do verbo comer."
Public Class Methods
new(word)
click to toggle source
# File lib/tracinho/word_classifier.rb, line 23 def initialize(word) @word = word end
Public Instance Methods
full_classification()
click to toggle source
Returns the full classification of a word
word = Tracinho::Word.new('matas-te') classifier = Tracinho::WordClassifier.new(word) classifier.full_classification # => "Conjugação pronominal reflexa da segunda pessoa do presente do indicat..."
# File lib/tracinho/word_classifier.rb, line 34 def full_classification case @word.to_s when /ste$/ "Segunda pessoa do singular do #{full_verb}." when /sse$/ "Primeira ou terceira pessoa do singular do #{full_verb}." when /[^-]mos$/ "Primeira pessoa do plural do #{full_verb}." when /(-te|-se)$/ "Conjugação pronominal reflexa da segunda pessoa do #{full_verb}." when /-mos$/ "Conjugação pronominal da segunda pessoa do singular do #{full_verb}." end end
verb()
click to toggle source
# File lib/tracinho/word_classifier.rb, line 49 def verb endings = @word.to_s.match(ENDINGS).captures.compact verb = @word.to_s.sub(endings.first, 'r') verb.sub!(/rr$/, 'r') verb.sub!(/our$/, 'ar') # Irregular verbs that got bad guesses verb = verb.sub(/^var$/, 'ir').sub(/^sor$/, 'ser').sub(/^for$/, 'ser') verb end
verb_tense()
click to toggle source
# File lib/tracinho/word_classifier.rb, line 62 def verb_tense case @word.to_s when /ste$/ 'pretérito perfeito do indicativo' when /sse$/ 'pretérito imperfeito do conjuntivo' when /[^-]mos$/ 'presente do indicativo ou pretérito perfeito do indicativo' when /(-te|-se)$/ 'presente do indicativo' when /-mos$/ 'imperativo' end end
Private Instance Methods
full_verb()
click to toggle source
# File lib/tracinho/word_classifier.rb, line 79 def full_verb "#{verb_tense} do verbo #{verb}" end