class Linguistics::Latin::Verb::LatinVerb::Classifier
Public Class Methods
new(verb, opts={})
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 7 def initialize(verb, opts={}) @verb, @opts = verb, opts end
Public Instance Methods
classification()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 11 def classification @c ||= strategies.detect { |s| s.new(self).applicable? }.classification end
deponent?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 28 def deponent? classification == Linguistics::Latin::Verb::Classification::Deponent end
impersonal?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 36 def impersonal? classification == Linguistics::Latin::Verb::Classification::Impersonal end
input()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 15 def input @input ||= @verb.original_string end
irregular?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 40 def irregular? classification == Linguistics::Latin::Verb::Classification::Irregular end
present_only?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 23 def present_only? classification == Linguistics::Latin::Verb::Classification::PresentOnly || extremely_irregular? end
proxy_verb?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 19 def proxy_verb? !!@verb.options[:proxy_verb] end
regular?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 44 def regular? classification == Linguistics::Latin::Verb::Classification::Regular end
semideponent?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 32 def semideponent? classification == Linguistics::Latin::Verb::Classification::Semideponent end
short_class()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 48 def short_class classification.to_s.split('::').last end
Private Instance Methods
default_strategies()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 58 def default_strategies [ DefectiveVerbClassificationStrategy, IrregularVerbClassificationStrategy, SemideponentVerbClassificationStrategy, ImpersonalVerbClassificationStrategy, VeryIrregularVerbClassificationStrategy, PresentonlyVerbClassificationStrategy, DeponentVerbClassificationStrategy, RegularVerbClassificationStrategy ] end
extremely_irregular?()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 71 def extremely_irregular? classification == Linguistics::Latin::Verb::Classification::Irregular && VeryIrregularVerbClassificationStrategy.new(self).applicable? end
strategies()
click to toggle source
# File lib/latinverb_classifier/classifier.rb, line 54 def strategies @strategies ||= (@opts[:strategies] || default_strategies) end