latinverb_querent_for_classification_builder 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +24 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +12 -0
  7. data/latinverb_querent_for_classification_builder.gemspec +26 -0
  8. data/lib/latinverb_querent_for_classification_builder/past_and_perfect_tense_block_eclipser.rb +49 -0
  9. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/active_voice_indicative_mood_future_tense_methods.rb +90 -0
  10. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/active_voice_indicative_mood_imperfect_tense_methods.rb +90 -0
  11. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/active_voice_indicative_mood_present_tense_methods.rb +90 -0
  12. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/active_voice_subjunctive_mood_present_tense_methods.rb +94 -0
  13. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/passive_voice_indicative_mood_future_tense_methods.rb +100 -0
  14. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +91 -0
  15. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/passive_voice_indicative_mood_present_tense_methods.rb +92 -0
  16. data/lib/latinverb_querent_for_classification_builder/querent/first/tense_method_definitions/passive_voice_subjunctive_mood_present_tense_methods.rb +93 -0
  17. data/lib/latinverb_querent_for_classification_builder/querent/first.rb +26 -0
  18. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/active_voice_indicative_mood_future_tense_methods.rb +90 -0
  19. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/active_voice_indicative_mood_imperfect_tense_methods.rb +91 -0
  20. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/active_voice_indicative_mood_present_tense_methods.rb +92 -0
  21. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/active_voice_subjunctive_mood_present_tense_methods.rb +97 -0
  22. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/passive_voice_indicative_mood_future_tense_methods.rb +93 -0
  23. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +92 -0
  24. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/passive_voice_indicative_mood_present_tense_methods.rb +94 -0
  25. data/lib/latinverb_querent_for_classification_builder/querent/fourth/tense_method_definitions/passive_voice_subjunctive_mood_present_tense_methods.rb +94 -0
  26. data/lib/latinverb_querent_for_classification_builder/querent/fourth.rb +26 -0
  27. data/lib/latinverb_querent_for_classification_builder/querent/impersonal.rb +13 -0
  28. data/lib/latinverb_querent_for_classification_builder/querent/impersonal_verb_mixin.rb +13 -0
  29. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_imperative_mood_future_tense_methods.rb +83 -0
  30. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_imperative_mood_present_tense_methods.rb +84 -0
  31. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_indicative_mood_future_tense_methods.rb +84 -0
  32. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_indicative_mood_futureperfect_tense_methods.rb +84 -0
  33. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_indicative_mood_imperfect_tense_methods.rb +84 -0
  34. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_indicative_mood_pastperfect_tense_methods.rb +84 -0
  35. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_indicative_mood_perfect_tense_methods.rb +85 -0
  36. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_indicative_mood_present_tense_methods.rb +84 -0
  37. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_subjunctive_mood_imperfect_tense_methods.rb +85 -0
  38. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_subjunctive_mood_pastperfect_tense_methods.rb +85 -0
  39. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_subjunctive_mood_perfect_tense_methods.rb +85 -0
  40. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/active_voice_subjunctive_mood_present_tense_methods.rb +84 -0
  41. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_indicative_mood_future_tense_methods.rb +84 -0
  42. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_indicative_mood_futureperfect_tense_methods.rb +85 -0
  43. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +85 -0
  44. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_indicative_mood_pastperfect_tense_methods.rb +85 -0
  45. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_indicative_mood_perfect_tense_methods.rb +86 -0
  46. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_indicative_mood_present_tense_methods.rb +85 -0
  47. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_subjunctive_mood_imperfect_tense_methods.rb +86 -0
  48. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_subjunctive_mood_pastperfect_tense_methods.rb +86 -0
  49. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_subjunctive_mood_perfect_tense_methods.rb +86 -0
  50. data/lib/latinverb_querent_for_classification_builder/querent/irregular/tense_method_definitions/passive_voice_subjunctive_mood_present_tense_methods.rb +85 -0
  51. data/lib/latinverb_querent_for_classification_builder/querent/irregular.rb +61 -0
  52. data/lib/latinverb_querent_for_classification_builder/querent/querent_interface.rb +70 -0
  53. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/active_voice_indicative_mood_future_tense_methods.rb +90 -0
  54. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/active_voice_indicative_mood_imperfect_tense_methods.rb +90 -0
  55. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/active_voice_indicative_mood_present_tense_methods.rb +92 -0
  56. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/active_voice_subjunctive_mood_present_tense_methods.rb +94 -0
  57. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/passive_voice_indicative_mood_future_tense_methods.rb +98 -0
  58. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +92 -0
  59. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/passive_voice_indicative_mood_present_tense_methods.rb +93 -0
  60. data/lib/latinverb_querent_for_classification_builder/querent/second/tense_method_definitions/passive_voice_subjunctive_mood_present_tense_methods.rb +96 -0
  61. data/lib/latinverb_querent_for_classification_builder/querent/second.rb +26 -0
  62. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/active_voice_indicative_mood_future_tense_methods.rb +90 -0
  63. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/active_voice_indicative_mood_imperfect_tense_methods.rb +90 -0
  64. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/active_voice_indicative_mood_present_tense_methods.rb +90 -0
  65. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/active_voice_subjunctive_mood_present_tense_methods.rb +96 -0
  66. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/passive_voice_indicative_mood_future_tense_methods.rb +93 -0
  67. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +92 -0
  68. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/passive_voice_indicative_mood_present_tense_methods.rb +91 -0
  69. data/lib/latinverb_querent_for_classification_builder/querent/third/tense_method_definitions/passive_voice_subjunctive_mood_present_tense_methods.rb +94 -0
  70. data/lib/latinverb_querent_for_classification_builder/querent/third.rb +26 -0
  71. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/active_voice_indicative_mood_future_tense_methods.rb +90 -0
  72. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/active_voice_indicative_mood_imperfect_tense_methods.rb +90 -0
  73. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/active_voice_indicative_mood_present_tense_methods.rb +90 -0
  74. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/active_voice_subjunctive_mood_present_tense_methods.rb +96 -0
  75. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/passive_voice_indicative_mood_future_tense_methods.rb +95 -0
  76. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +92 -0
  77. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/passive_voice_indicative_mood_present_tense_methods.rb +96 -0
  78. data/lib/latinverb_querent_for_classification_builder/querent/third_io/tense_method_definitions/passive_voice_subjunctive_mood_present_tense_methods.rb +94 -0
  79. data/lib/latinverb_querent_for_classification_builder/querent/third_io.rb +26 -0
  80. data/lib/latinverb_querent_for_classification_builder/querent.rb +46 -0
  81. data/lib/latinverb_querent_for_classification_builder/querent_factory.rb +29 -0
  82. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_builder.rb +28 -0
  83. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_strategy/deponent.rb +46 -0
  84. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_strategy/impersonal.rb +21 -0
  85. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_strategy/irregular.rb +24 -0
  86. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_strategy/present_only.rb +23 -0
  87. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_strategy/regular.rb +30 -0
  88. data/lib/latinverb_querent_for_classification_builder/querent_for_classification_strategy/semideponent.rb +24 -0
  89. data/lib/latinverb_querent_for_classification_builder/querent_mutators/.DS_Store +0 -0
  90. data/lib/latinverb_querent_for_classification_builder/querent_mutators/irregular/supine_inferrer.rb +42 -0
  91. data/lib/latinverb_querent_for_classification_builder/querent_mutators/irregular.rb +37 -0
  92. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_indicative_present_tense_methods.rb +85 -0
  93. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_indicative_mood_future_tense_methods.rb +85 -0
  94. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_indicative_mood_futureperfect_tense_methods.rb +83 -0
  95. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_indicative_mood_imperfect_tense_methods.rb +84 -0
  96. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_indicative_mood_pastperfect_tense_methods.rb +83 -0
  97. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_indicative_mood_perfect_tense_methods.rb +85 -0
  98. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_indicative_mood_present_tense_methods.rb +83 -0
  99. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_subjunctive_mood_imperfect_tense_methods.rb +85 -0
  100. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_subjunctive_mood_pastperfect_tense_methods.rb +83 -0
  101. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_subjunctive_mood_perfect_tense_methods.rb +83 -0
  102. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/active_voice_subjunctive_mood_present_tense_methods.rb +84 -0
  103. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter/nullified_passive_voice_tense_blocks.rb +31 -0
  104. data/lib/latinverb_querent_for_classification_builder/semideponent_querent_adapter.rb +53 -0
  105. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_imperative_mood_future_tense_methods.rb +87 -0
  106. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_imperative_mood_present_tense_methods.rb +87 -0
  107. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_indicative_mood_futureperfect_tense_methods.rb +88 -0
  108. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_indicative_mood_pastperfect_tense_methods.rb +88 -0
  109. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_indicative_mood_perfect_tense_methods.rb +89 -0
  110. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_subjunctive_mood_imperfect_tense_methods.rb +89 -0
  111. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_subjunctive_mood_pastperfect_tense_methods.rb +90 -0
  112. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/active_voice_subjunctive_mood_perfect_tense_methods.rb +90 -0
  113. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/passive_voice_indicative_mood_futureperfect_tense_methods.rb +87 -0
  114. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/passive_voice_indicative_mood_imperfect_tense_methods.rb +90 -0
  115. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/passive_voice_indicative_mood_pastperfect_tense_methods.rb +87 -0
  116. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/passive_voice_indicative_mood_perfect_tense_methods.rb +87 -0
  117. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/passive_voice_subjunctive_mood_pastperfect_tense_methods.rb +93 -0
  118. data/lib/latinverb_querent_for_classification_builder/tense_method_definitions/passive_voice_subjunctive_mood_perfect_tense_methods.rb +93 -0
  119. data/lib/latinverb_querent_for_classification_builder/version.rb +3 -0
  120. data/lib/latinverb_querent_for_classification_builder.rb +132 -0
  121. data/test/builder_test.rb +7 -0
  122. metadata +235 -0
@@ -0,0 +1,46 @@
1
+ #encoding: UTF-8
2
+
3
+ module Linguistics
4
+ module Latin
5
+ module Verb
6
+ class LatinVerb
7
+ class Querent
8
+ include Querent::QuerentInterface
9
+ TENSE_METHOD_DEFINITIONS = [
10
+ Querent::ActiveVoiceImperativeMoodFutureTenseMethods,
11
+ Querent::ActiveVoiceImperativeMoodPresentTenseMethods,
12
+ Querent::ActiveVoiceIndicativeMoodFutureperfectTenseMethods,
13
+ Querent::ActiveVoiceIndicativeMoodPastperfectTenseMethods,
14
+ Querent::ActiveVoiceIndicativeMoodPerfectTenseMethods,
15
+ Querent::ActiveVoiceSubjunctiveMoodImperfectTenseMethods,
16
+ Querent::ActiveVoiceSubjunctiveMoodPastPerfectTenseMethods,
17
+ Querent::ActiveVoiceSubjunctiveMoodPerfectTenseMethods,
18
+ Querent::PassiveVoiceIndicativeMoodFutureperfectTenseMethods,
19
+ Querent::PassiveVoiceIndicativeMoodPastperfectTenseMethods,
20
+ Querent::PassiveVoiceIndicativeMoodPerfectTMethods,
21
+ Querent::PassiveVoiceSubjunctiveMoodImperfectTenseMethods,
22
+ Querent::PassiveVoiceSubjunctiveMoodPastperfectTenseMethods,
23
+ Querent::PassiveVoiceSubjunctiveMoodPerfectTenseMethods
24
+ ]
25
+
26
+ extend Forwardable
27
+ def_delegators :@verb, :stem, :imperatives, :first_person_singular, :first_person_perfect,
28
+ :present_active_infinitive, :passive_perfect_participle, :present_active_infinitive, :verb_type
29
+
30
+ def initialize(verb)
31
+ @verb = verb
32
+ @added_vectorized_methods = []
33
+
34
+ add_tense_methods!
35
+ end
36
+
37
+ def add_tense_methods!
38
+ collection = TENSE_METHOD_DEFINITIONS + tense_definitions_template
39
+ extend_with_tense_method_definitions!(collection)
40
+ register_methods!(collection)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,29 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentFactory
6
+ extend Forwardable
7
+ def_delegators :@verb, :short_type
8
+
9
+
10
+ MAPPING = {
11
+ First: FirstQuerent,
12
+ Second: SecondQuerent,
13
+ Third: ThirdQuerent,
14
+ ThirdIO: ThirdIOQuerent,
15
+ Fourth: FourthQuerent
16
+ }
17
+
18
+ def initialize(verb)
19
+ @verb = verb
20
+ end
21
+
22
+ def querent
23
+ MAPPING[short_type].new(@verb)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentForClassificationBuilder
6
+ extend Forwardable
7
+ def_delegators :@verb, :short_class
8
+
9
+ MAPPING = {
10
+ Regular: QuerentForClassificationStrategy::Regular,
11
+ Irregular: QuerentForClassificationStrategy::Irregular,
12
+ PresentOnly: QuerentForClassificationStrategy::PresentOnly,
13
+ Deponent: QuerentForClassificationStrategy::Deponent,
14
+ Semideponent: QuerentForClassificationStrategy::Semideponent,
15
+ Impersonal: QuerentForClassificationStrategy::Impersonal,
16
+ }
17
+
18
+ attr_reader :querent
19
+
20
+ def initialize(verb)
21
+ @verb = verb
22
+ @querent = MAPPING[short_class.to_sym].new(@verb).querent
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,46 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentForClassificationBuilder
6
+ module QuerentForClassificationStrategy
7
+ class Deponent < Regular
8
+ extend Forwardable
9
+ def_delegators :@verb, :original_string
10
+
11
+ def initialize(verb)
12
+ super
13
+ prepare_deponent_proxy!
14
+ reroute_active_calls_to_proxys_passives!
15
+ end
16
+
17
+ private
18
+
19
+ def prepare_deponent_proxy!
20
+ @querent.extend Forwardable
21
+ @querent.instance_variable_set(:@deponentProxy, LatinVerb.new(proxy_string, :proxy_verb => true))
22
+ end
23
+
24
+ def reroute_active_calls_to_proxys_passives!
25
+ passive_and_active_pairs do |passive_method_name, active_method_name|
26
+ @querent.def_delegator "@deponentProxy", passive_method_name, active_method_name
27
+ end
28
+ end
29
+
30
+ def passive_and_active_pairs
31
+ LatinVerb::Querent::PASSIVE_TENSE_METHODS.map do |passive_method_name|
32
+ active_correlate = passive_method_name.to_s.sub(/^passive(.*)/, "active\\1")
33
+ yield passive_method_name, active_correlate
34
+ end
35
+ end
36
+
37
+ def proxy_string
38
+ DeponentStringDeriver.new(original_string).proxy_string
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,21 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentForClassificationBuilder
6
+ module QuerentForClassificationStrategy
7
+ class Impersonal < Regular
8
+ def initialize(verb)
9
+ @verb = verb
10
+ end
11
+
12
+ def querent
13
+ ImpersonalQuerent.new(@verb).extend(ImpersonalVerbMixin)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,24 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentForClassificationBuilder
6
+ module QuerentForClassificationStrategy
7
+ class Irregular
8
+ extend Forwardable
9
+ def_delegators :@verb, :original_string, :passive_perfect_participle
10
+
11
+ attr_reader :querent
12
+
13
+ def initialize(verb)
14
+ @verb = verb
15
+ @builder = QuerentMutators::Irregular.new(original_string, passive_perfect_participle, @verb.original_string)
16
+ @querent = @builder.querent
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentForClassificationBuilder
6
+ module QuerentForClassificationStrategy
7
+ class PresentOnly < Regular
8
+ private
9
+
10
+ def post_initialize
11
+ eclipse_past_and_pastperfect_tenses!
12
+ end
13
+
14
+ def eclipse_past_and_pastperfect_tenses!
15
+ @querent.extend(PerfectAndPastperfectTenseBlockEclipser)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,30 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class QuerentForClassificationBuilder
6
+ module QuerentForClassificationStrategy
7
+ class Regular
8
+ extend Forwardable
9
+ def_delegators :@querent, :defined_tense_methods
10
+
11
+ attr_reader :querent
12
+
13
+ def initialize(verb)
14
+ @verb = verb
15
+ @querent = QuerentFactory.new(@verb).querent
16
+
17
+ post_initialize
18
+ end
19
+
20
+ private
21
+
22
+ def post_initialize
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,24 @@
1
+
2
+ module Linguistics
3
+ module Latin
4
+ module Verb
5
+ class LatinVerb
6
+ class QuerentForClassificationBuilder
7
+ module QuerentForClassificationStrategy
8
+ class Semideponent < Regular
9
+ def post_initialize
10
+ override_default_querent!
11
+ end
12
+
13
+ private
14
+
15
+ def override_default_querent!
16
+ @querent = SemideponentQuerentAdapter.new(@verb, @querent)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,42 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ module QuerentMutators
6
+ class Irregular
7
+ class SupineInferrer
8
+ def initialize(perfect_passive_participle)
9
+ @perfect_passive_participle = String(perfect_passive_participle)
10
+ end
11
+
12
+ def supine
13
+ return {} unless accusative_supine
14
+ {:ablative => ablative_supine, :accusative => accusative_supine}
15
+ end
16
+
17
+ private
18
+
19
+ def ablative_supine
20
+ return @ablative_supine if @ablative_supine
21
+ return "" if ablative_supine_base.nil?
22
+ String(ablative_supine_base + "ū")
23
+ end
24
+
25
+ def ablative_supine_base
26
+ return nil if accusative_supine.nil?
27
+ String(accusative_supine.sub(/^(.*)u(m)$/, "\\1"))
28
+ end
29
+
30
+ def accusative_supine
31
+ split_participle_string = @perfect_passive_participle.split(/\s+/).first
32
+ return nil if split_participle_string.nil?
33
+ @accusative_supine ||= String(split_participle_string.sub(/s\z/,'m'))
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+
@@ -0,0 +1,37 @@
1
+ #encoding: UTF-8
2
+
3
+ module Linguistics
4
+ module Latin
5
+ module Verb
6
+ class LatinVerb
7
+ module QuerentMutators
8
+ class Irregular
9
+ attr_reader :querent
10
+
11
+ def initialize(lookup_string, passive_perfect_participle, *args)
12
+ @structure = IrregularVerbDefinitionConsumer::JsonDeserializer.new(lookup_string).revivified_data_structure
13
+ @querent = LatinVerb::IrregularQuerent.new(@structure)
14
+ end
15
+
16
+ def imperative_handler
17
+ raw = @structure["tense_blocks"]
18
+ source = raw["active_voice_imperative_mood_present_tense"] || raw["active voice_imperative_mood_present_tense"]
19
+ raw = source["data"]
20
+ OpenStruct.new( :imperatives => [String(raw[1]).gsub(/\s+/,''), String(raw[4]).gsub(/\s+/,'')] )
21
+ end
22
+
23
+ def infinitivizer
24
+ OpenStruct.new(@structure['infinitives']['data'].merge(:participle_methods => @structure['participles']['data'].keys))
25
+ end
26
+
27
+ def participler
28
+ participles_data = @structure['participles']['data']
29
+ supine_data = SupineInferrer.new(participles_data["perfect_passive_participle"]).supine
30
+ OpenStruct.new(participles_data.merge({:supine => supine_data}))
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,85 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class Querent
6
+ module MaskedActiveIndicativePresent
7
+ def active_voice_indicative_mood_present_tense
8
+ @proxyVerb.passive_voice_indicative_mood_present_tense
9
+ end
10
+
11
+ def active_voice_indicative_mood_present_tense_first_person_singular_number
12
+ @proxyVerb.passive_voice_indicative_mood_present_tense.first_person_singular_number
13
+ end
14
+
15
+ def active_voice_indicative_mood_present_tense_singular_number_first_person
16
+ @proxyVerb.passive_voice_indicative_mood_present_tense.singular_number_first_person
17
+ end
18
+
19
+ def active_voice_indicative_mood_present_tense_second_person_singular_number
20
+ @proxyVerb.passive_voice_indicative_mood_present_tense.second_person_singular_number
21
+ end
22
+
23
+ def active_voice_indicative_mood_present_tense_singular_number_second_person
24
+ @proxyVerb.passive_voice_indicative_mood_present_tense.singular_number_second_person
25
+ end
26
+
27
+ def active_voice_indicative_mood_present_tense_third_person_singular_number
28
+ @proxyVerb.passive_voice_indicative_mood_present_tense.third_person_singular_number
29
+ end
30
+
31
+ def active_voice_indicative_mood_present_tense_singular_number_third_person
32
+ @proxyVerb.passive_voice_indicative_mood_present_tense.singular_number_third_person
33
+ end
34
+
35
+ def active_voice_indicative_mood_present_tense_first_person_plural_number
36
+ @proxyVerb.passive_voice_indicative_mood_present_tense.first_person_plural_number
37
+ end
38
+
39
+ def active_voice_indicative_mood_present_tense_plural_number_first_person
40
+ @proxyVerb.passive_voice_indicative_mood_present_tense.plural_number_first_person
41
+ end
42
+
43
+ def active_voice_indicative_mood_present_tense_second_person_plural_number
44
+ @proxyVerb.passive_voice_indicative_mood_present_tense.second_person_plural_number
45
+ end
46
+
47
+ def active_voice_indicative_mood_present_tense_plural_number_second_person
48
+ @proxyVerb.passive_voice_indicative_mood_present_tense.plural_number_second_person
49
+ end
50
+
51
+ def active_voice_indicative_mood_present_tense_third_person_plural_number
52
+ @proxyVerb.passive_voice_indicative_mood_present_tense.third_person_plural_number
53
+ end
54
+
55
+ def active_voice_indicative_mood_present_tense_plural_number_third_person
56
+ @proxyVerb.passive_voice_indicative_mood_present_tense.plural_number_third_person
57
+ end
58
+
59
+ def active_voice_indicative_mood_present_tense_first_person
60
+ @proxyVerb.passive_voice_indicative_mood_present_tense.first_person
61
+ end
62
+
63
+ def active_voice_indicative_mood_present_tense_second_person
64
+ @proxyVerb.passive_voice_indicative_mood_present_tense.second_person
65
+ end
66
+
67
+ def active_voice_indicative_mood_present_tense_third_person
68
+ @proxyVerb.passive_voice_indicative_mood_present_tense.third_person
69
+ end
70
+
71
+ def active_voice_indicative_mood_present_tense_singular_number
72
+ @proxyVerb.passive_voice_indicative_mood_present_tense.singular_number
73
+ end
74
+
75
+ def active_voice_indicative_mood_present_tense_plural_number
76
+ @proxyVerb.passive_voice_indicative_mood_present_tense.plural_number
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+
@@ -0,0 +1,85 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class SemideponentQuerentAdapter
6
+ module ActiveVoiceIndicativeMoodFutureTenseMethods
7
+ def active_voice_indicative_mood_future_tense
8
+ @proxyVerb.active_voice_indicative_mood_future_tense
9
+ end
10
+
11
+ def active_voice_indicative_mood_future_tense_first_person_singular_number
12
+ @proxyVerb.active_voice_indicative_mood_future_tense.first_person_singular_number
13
+ end
14
+
15
+ def active_voice_indicative_mood_future_tense_singular_number_first_person
16
+ @proxyVerb.active_voice_indicative_mood_future_tense.singular_number_first_person
17
+ end
18
+
19
+ def active_voice_indicative_mood_future_tense_second_person_singular_number
20
+ @proxyVerb.active_voice_indicative_mood_future_tense.second_person_singular_number
21
+ end
22
+
23
+ def active_voice_indicative_mood_future_tense_singular_number_second_person
24
+ @proxyVerb.active_voice_indicative_mood_future_tense.singular_number_second_person
25
+ end
26
+
27
+ def active_voice_indicative_mood_future_tense_third_person_singular_number
28
+ @proxyVerb.active_voice_indicative_mood_future_tense.third_person_singular_number
29
+ end
30
+
31
+ def active_voice_indicative_mood_future_tense_singular_number_third_person
32
+ @proxyVerb.active_voice_indicative_mood_future_tense.singular_number_third_person
33
+ end
34
+
35
+ def active_voice_indicative_mood_future_tense_first_person_plural_number
36
+ @proxyVerb.active_voice_indicative_mood_future_tense.first_person_plural_number
37
+ end
38
+
39
+ def active_voice_indicative_mood_future_tense_plural_number_first_person
40
+ @proxyVerb.active_voice_indicative_mood_future_tense.plural_number_first_person
41
+ end
42
+
43
+ def active_voice_indicative_mood_future_tense_second_person_plural_number
44
+ @proxyVerb.active_voice_indicative_mood_future_tense.second_person_plural_number
45
+ end
46
+
47
+ def active_voice_indicative_mood_future_tense_plural_number_second_person
48
+ @proxyVerb.active_voice_indicative_mood_future_tense.plural_number_second_person
49
+ end
50
+
51
+ def active_voice_indicative_mood_future_tense_third_person_plural_number
52
+ @proxyVerb.active_voice_indicative_mood_future_tense.third_person_plural_number
53
+ end
54
+
55
+ def active_voice_indicative_mood_future_tense_plural_number_third_person
56
+ @proxyVerb.active_voice_indicative_mood_future_tense.plural_number_third_person
57
+ end
58
+
59
+ def active_voice_indicative_mood_future_tense_first_person
60
+ @proxyVerb.active_voice_indicative_mood_future_tense.first_person
61
+ end
62
+
63
+ def active_voice_indicative_mood_future_tense_second_person
64
+ @proxyVerb.active_voice_indicative_mood_future_tense.second_person
65
+ end
66
+
67
+ def active_voice_indicative_mood_future_tense_third_person
68
+ @proxyVerb.active_voice_indicative_mood_future_tense.third_person
69
+ end
70
+
71
+ def active_voice_indicative_mood_future_tense_singular_number
72
+ @proxyVerb.active_voice_indicative_mood_future_tense.singular_number
73
+ end
74
+
75
+ def active_voice_indicative_mood_future_tense_plural_number
76
+ @proxyVerb.active_voice_indicative_mood_future_tense.plural_number
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+
@@ -0,0 +1,83 @@
1
+ module Linguistics
2
+ module Latin
3
+ module Verb
4
+ class LatinVerb
5
+ class SemideponentQuerentAdapter
6
+ module ActiveVoiceIndicativeMoodFutureperfectTenseMethods
7
+ def active_voice_indicative_mood_futureperfect_tense
8
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense
9
+ end
10
+
11
+ def active_voice_indicative_mood_futureperfect_tense_first_person_singular_number
12
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.first_person_singular_number
13
+ end
14
+
15
+ def active_voice_indicative_mood_futureperfect_tense_singular_number_first_person
16
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.singular_number_first_person
17
+ end
18
+
19
+ def active_voice_indicative_mood_futureperfect_tense_second_person_singular_number
20
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.second_person_singular_number
21
+ end
22
+
23
+ def active_voice_indicative_mood_futureperfect_tense_singular_number_second_person
24
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.singular_number_second_person
25
+ end
26
+
27
+ def active_voice_indicative_mood_futureperfect_tense_third_person_singular_number
28
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.third_person_singular_number
29
+ end
30
+
31
+ def active_voice_indicative_mood_futureperfect_tense_singular_number_third_person
32
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.singular_number_third_person
33
+ end
34
+
35
+ def active_voice_indicative_mood_futureperfect_tense_first_person_plural_number
36
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.first_person_plural_number
37
+ end
38
+
39
+ def active_voice_indicative_mood_futureperfect_tense_plural_number_first_person
40
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.plural_number_first_person
41
+ end
42
+
43
+ def active_voice_indicative_mood_futureperfect_tense_second_person_plural_number
44
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.second_person_plural_number
45
+ end
46
+
47
+ def active_voice_indicative_mood_futureperfect_tense_plural_number_second_person
48
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.plural_number_second_person
49
+ end
50
+
51
+ def active_voice_indicative_mood_futureperfect_tense_third_person_plural_number
52
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.third_person_plural_number
53
+ end
54
+
55
+ def active_voice_indicative_mood_futureperfect_tense_plural_number_third_person
56
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.plural_number_third_person
57
+ end
58
+
59
+ def active_voice_indicative_mood_futureperfect_tense_first_person
60
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.first_person
61
+ end
62
+
63
+ def active_voice_indicative_mood_futureperfect_tense_second_person
64
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.second_person
65
+ end
66
+
67
+ def active_voice_indicative_mood_futureperfect_tense_third_person
68
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.third_person
69
+ end
70
+
71
+ def active_voice_indicative_mood_futureperfect_tense_singular_number
72
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.singular_number
73
+ end
74
+
75
+ def active_voice_indicative_mood_futureperfect_tense_plural_number
76
+ @proxyVerb.passive_voice_indicative_mood_futureperfect_tense.plural_number
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end