Class: Linguistics::Latin::Verb::LatinVerb
- Inherits:
-
Object
- Object
- Linguistics::Latin::Verb::LatinVerb
show all
- Extended by:
- Forwardable
- Defined in:
- lib/latinverb.rb,
lib/latinverb/errors.rb,
lib/latinverb/version.rb,
lib/latinverb/paradigmatic_verbs.rb,
lib/latinverb/serialization/hash.rb,
lib/latinverb/serialization/json.rb,
lib/latinverb/serialization/yaml.rb,
lib/latinverb/components/validator.rb,
lib/latinverb/components/classifier.rb,
lib/latinverb/components/participler.rb,
lib/latinverb/components/stem_deriver.rb,
lib/latinverb/dynamic_method_resolver.rb,
lib/latinverb/tense_method_applicator.rb,
lib/latinverb/components/infinitivizer.rb,
lib/latinverb/components/type_evaluator.rb,
lib/latinverb/components/chart_presenter.rb,
lib/latinverb/components/imperatives_handler.rb,
lib/latinverb/tense_method_applicator/fourth.rb,
lib/latinverb/components/present_only_checker.rb,
lib/latinverb/components/principal_parts_extractor.rb,
lib/latinverb/components/passive_infinitive_factory.rb,
lib/latinverb/tense_method_applicator/first_builder.rb,
lib/latinverb/tense_method_applicator/third_builder.rb,
lib/latinverb/tense_method_applicator/fourth_builder.rb,
lib/latinverb/tense_method_applicator/second_builder.rb,
lib/latinverb/tense_method_applicator/thirdio_builder.rb,
lib/latinverb/tense_method_applicator/mutators/regular.rb,
lib/latinverb/tense_method_applicator/defective_checker.rb,
lib/latinverb/tense_method_applicator/irregular_builder.rb,
lib/latinverb/tense_method_applicator/mutators/deponent.rb,
lib/latinverb/tense_method_applicator/mutators/invariant.rb,
lib/latinverb/tense_method_applicator/mutators/irregular.rb,
lib/latinverb/tense_method_applicator/mutators/impersonal.rb,
lib/latinverb/tense_method_applicator/mutator_for_verb_type.rb,
lib/latinverb/tense_method_applicator/mutators/present_only.rb,
lib/latinverb/tense_method_applicator/mutators/semideponent.rb,
lib/latinverb/tense_method_applicator/perfect_tense_remover.rb,
lib/latinverb/tense_method_applicator/deponent_string_deriver.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/imperatives.rb,
lib/latinverb/tense_method_applicator/mutator_for_classification_factory.rb,
lib/latinverb/tense_method_applicator/mutators/irregular/json_revivifier.rb,
lib/latinverb/tense_method_applicator/mutators/deponent/imperative_mutator.rb,
lib/latinverb/tense_method_applicator/mutators/deponent/infinitive_mutator.rb,
lib/latinverb/tense_method_applicator/mutators/deponent/participle_mutator.rb,
lib/latinverb/tense_method_applicator/mutators/irregular/json_deserializer.rb,
lib/latinverb/components/classifier/strategies/verb_classification_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/deponent/tense_block_mutator.rb,
lib/latinverb/tense_method_applicator/mutators/irregular/infinitives_builder.rb,
lib/latinverb/tense_method_applicator/mutators/irregular/participles_builder.rb,
lib/latinverb/components/classifier/strategies/regular_verb_classification_strategy.rb,
lib/latinverb/components/classifier/strategies/deponent_verb_classification_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/irregular/present_only_irregular_mask.rb,
lib/latinverb/components/classifier/strategies/defective_verb_classification_strategy.rb,
lib/latinverb/components/classifier/strategies/irregular_verb_classification_strategy.rb,
lib/latinverb/components/classifier/strategies/impersonal_verb_classification_strategy.rb,
lib/latinverb/components/classifier/strategies/present_only_verb_classification_strategy.rb,
lib/latinverb/components/classifier/strategies/semideponent_verb_classification_strategy.rb,
lib/latinverb/components/classifier/strategies/very_irregular_verb_classification_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/triplicate_and_pluralize_formatters.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_imperative_mood_future_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_future_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_imperative_mood_present_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_perfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_present_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_indicative_mood_future_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_subjunctive_mood_perfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_subjunctive_mood_present_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_indicative_mood_perfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_indicative_mood_present_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_imperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_subjunctive_mood_perfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_subjunctive_mood_present_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_subjunctive_mood_imperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_indicative_mood_imperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_pastperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_subjunctive_mood_imperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_subjunctive_mood_pastperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_indicative_mood_pastperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/active_voice_indicative_mood_futureperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_subjunctive_mood_pastperfect_tense_strategy.rb,
lib/latinverb/tense_method_applicator/mutators/invariant/passive_voice_indicative_mood_futureperfect_tense_strategy.rb
Defined Under Namespace
Modules: Mutators
Classes: ChartPresenter, DefectiveChecker, DeponentStringDeriver, DynamicMethodResolver, ImperativesHandler, Infinitivizer, LatinVerbClassifier, LatinVerbInitializationError, LatinVerbPrincipalPartsExtractor, LatinVerbTypeEvaluator, LatinverbStemDeriver, Participler, PerfectTenseRemover, PresentOnlyChecker, TenseMethodApplicator, Validator
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(data) ⇒ LatinVerb
Returns a new instance of LatinVerb.
37
38
39
40
41
42
43
|
# File 'lib/latinverb.rb', line 37
def initialize(data)
classify(data)
build_validator
apply_parts_of_speech!
apply_tenses!
apply_chart_capabilities!
end
|
Instance Attribute Details
#classifier ⇒ Object
Returns the value of attribute classifier.
35
36
37
|
# File 'lib/latinverb.rb', line 35
def classifier
@classifier
end
|
#original_string ⇒ Object
Returns the value of attribute original_string.
35
36
37
|
# File 'lib/latinverb.rb', line 35
def original_string
@original_string
end
|
#verb_methods ⇒ Object
Returns the value of attribute verb_methods.
35
36
37
|
# File 'lib/latinverb.rb', line 35
def verb_methods
@verb_methods
end
|
Class Method Details
.json_create(o) ⇒ Object
7
8
9
|
# File 'lib/latinverb/serialization/json.rb', line 7
def self.json_create(o)
new(o)
end
|
Instance Method Details
#display ⇒ Object
49
50
51
|
# File 'lib/latinverb.rb', line 49
def display
pretty_generate
end
|
#pretty_generate ⇒ Object
35
36
37
|
# File 'lib/latinverb/serialization/json.rb', line 35
def pretty_generate
JSON.pretty_generate(self.to_h)
end
|
#to_hash ⇒ Object
Also known as:
to_h
5
6
7
8
9
10
11
|
# File 'lib/latinverb/serialization/hash.rb', line 5
def to_hash
methods.grep(/tense\z/).inject({'original_string' => @original_string}) do |memo, tense_block_identifier|
ts = tense_block_identifier.to_sym
memo[ts] = self.send(ts)
memo
end
end
|
#to_json(*a) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/latinverb/serialization/json.rb', line 11
def to_json(*a)
json_hash = {'json_class' => self.class.name}
unless self.irregular?
%w{original_string classification stem}.each do |k|
json_hash[k] = self.send k.to_sym
end
json_hash['tense_list' ] = {}
methods.grep(/tense\z/).each do |t|
json_hash['tense_list'][t.to_s] = self.send t.to_sym
end
json_hash['irregular'] = irregular?
return json_hash.to_json(*a)
end
end
|
#to_s ⇒ Object
45
46
47
|
# File 'lib/latinverb.rb', line 45
def to_s
sprintf("%s [%s]", short_class, original_string)
end
|
#to_yaml ⇒ Object
Also known as:
to_y
7
8
9
|
# File 'lib/latinverb/serialization/yaml.rb', line 7
def to_yaml
to_hash.to_yaml
end
|