Module: Myasorubka::AOT::Tags::Russian

Defined in:
lib/myasorubka/aot/tags.rb

Overview

Russian language helpers.

Class Method Summary collapse

Class Method Details

.animate(msd, grammemes) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/myasorubka/aot/tags.rb', line 26

def self.animate(msd, grammemes)
  msd[:animate] = if grammemes.include? 'од'
    :yes
  elsif grammemes.include? 'но'
    :no
  end
  msd
end

.aspect(msd, grammemes) ⇒ Object



71
72
73
74
75
76
77
78
# File 'lib/myasorubka/aot/tags.rb', line 71

def self.aspect(msd, grammemes)
  msd[:aspect] = if grammemes.include? 'св'
    :perfective
  elsif grammemes.include? 'нс'
    :progressive
  end
  msd
end

.case(msd, grammemes) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/myasorubka/aot/tags.rb', line 44

def self.case(msd, grammemes)
  msd[:case] = if grammemes.include? 'им'
    :nominative
  elsif grammemes.include? 'рд'
    :genitive
  elsif grammemes.include? 'дт'
    :dative
  elsif grammemes.include? 'вн'
    :accusative
  elsif grammemes.include? 'тв'
    :instrumental
  elsif grammemes.include? 'пр'
    :locative
  elsif grammemes.include? 'зв'
    :vocative
  end
  msd
end

.case2(msd, grammemes) ⇒ Object



63
64
65
66
67
68
69
# File 'lib/myasorubka/aot/tags.rb', line 63

def self.case2(msd, grammemes)
  if grammemes.include? '2'
    msd[:case2] = :partitive if :genitive == msd[:case]
    msd[:case2] = :locative if :locative == msd[:case]
  end
  msd
end

.definiteness(msd, grammemes) ⇒ Object



115
116
117
118
119
120
# File 'lib/myasorubka/aot/tags.rb', line 115

def self.definiteness(msd, grammemes)
  msd[:definiteness] = if grammemes.include? 'кр'
    :short_art
  end
  msd
end

.degree(msd, grammemes) ⇒ Object



122
123
124
125
126
127
128
129
# File 'lib/myasorubka/aot/tags.rb', line 122

def self.degree(msd, grammemes)
  msd[:degree] = if grammemes.include? 'сравн'
    :comparative
  elsif grammemes.include? 'прев'
    :superlative
  end
  msd
end

.gender(msd, grammemes) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/myasorubka/aot/tags.rb', line 13

def self.gender(msd, grammemes)
  msd[:gender] = if grammemes.include? 'мр'
    :masculine
  elsif grammemes.include? 'жр'
    :feminine
  elsif grammemes.include? 'ср'
    :neuter
  elsif grammemes.include? 'мр-жр'
    :common
  end
  msd
end

.number(msd, grammemes) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/myasorubka/aot/tags.rb', line 35

def self.number(msd, grammemes)
  msd[:number] = if grammemes.include? 'ед'
    :singular
  elsif grammemes.include? 'мн'
    :plural
  end
  msd
end

.person(msd, grammemes) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/myasorubka/aot/tags.rb', line 102

def self.person(msd, grammemes)
  msd[:person] = if grammemes.include? ''
    :first
  elsif grammemes.include? ''
    :second
  elsif grammemes.include? ''
    :third
  elsif grammemes.include? 'безл'
    nil
  end
  msd
end

.tense(msd, grammemes) ⇒ Object



91
92
93
94
95
96
97
98
99
100
# File 'lib/myasorubka/aot/tags.rb', line 91

def self.tense(msd, grammemes)
  msd[:tense] = if grammemes.include? 'нст'
    :present
  elsif grammemes.include? 'прш'
    :past
  elsif grammemes.include? 'буд'
    :future
  end
  msd
end

.voice(msd, grammemes) ⇒ Object



80
81
82
83
84
85
86
87
88
89
# File 'lib/myasorubka/aot/tags.rb', line 80

def self.voice(msd, grammemes)
  msd[:voice] = if grammemes.include? 'дст'
    :active
  elsif grammemes.include? 'стр'
    :passive
  elsif :verb == msd[:pos]
    :medial
  end
  msd
end