czech_declensions 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in czech_declensions.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "czech_declensions/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "czech_declensions"
7
+ s.version = CzechDeclensions::VERSION
8
+ s.authors = ["Dominik Formánek"]
9
+ s.email = ["dominik.formanek@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Czech declensions}
12
+ s.description = %q{Tool for czech declensions}
13
+
14
+ s.rubyforge_project = "czech_declensions"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ # s.add_runtime_dependency "rest-client"
24
+ end
@@ -0,0 +1,3 @@
1
+ module CzechDeclensions
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,885 @@
1
+ # coding: utf-8
2
+ require "czech_declensions/version"
3
+
4
+ module CzechDeclensions
5
+
6
+ def self.initialize
7
+ @vzor = []
8
+ @isdbgmode = false
9
+ #
10
+ # Přídavná jména a zájmena
11
+ #
12
+ @vzor << [ "m","-ký","kého","kému","ký/kého","ký","kém","kým", "-ké/-cí","kých","kým","ké","-ké/-cí","kých","kými" ]
13
+ @vzor << [ "m","-rý","rého","rému","rý/rého","rý","rém","rým", "-ré/-ří","rých","rým","ré","-ré/-ří","rých","rými" ]
14
+ @vzor << [ "m","-chý","chého","chému","chý/chého","chý","chém","chým", "-ché/-ší","chých","chým","ché","-ché/-ší","chých","chými" ]
15
+ @vzor << [ "m","-hý","hého","hému","hý/hého","hý","hém","hým", "-hé/-zí","hých","hým","hé","-hé/-zí","hých","hými" ]
16
+ @vzor << [ "m","-ý","ého","ému","ý/ého","ý","ém","ým", "-é/-í","ých","ým","é","-é/-í","ých","ými" ]
17
+ @vzor << [ "m","-[aeěií]cí","0cího","0címu","0cí/0cího","0cí","0cím","0cím", "0cí","0cích","0cím","0cí","0cí","0cích","0cími" ]
18
+ @vzor << [ "ž","-[aeěií]cí","0cí","0cí","0cí","0cí","0cí","0cí", "0cí","0cích","0cím","0cí","0cí","0cích","0cími" ]
19
+ @vzor << [ "s","-[aeěií]cí","0cího","0címu","0cí/0cího","0cí","0cím","0cím", "0cí","0cích","0cím","0cí","0cí","0cích","0cími" ]
20
+ @vzor << [ "m","-[bcčdhklmnprsštvzž]ní","0ního","0nímu","0ní/0ního","0ní","0ním","0ním", "0ní","0ních","0ním","0ní","0ní","0ních","0ními" ]
21
+ @vzor << [ "ž","-[bcčdhklmnprsštvzž]ní","0ní","0ní","0ní","0ní","0ní","0ní", "0ní","0ních","0ním","0ní","0ní","0ních","0ními" ]
22
+ @vzor << [ "s","-[bcčdhklmnprsštvzž]ní","0ního","0nímu","0ní/0ního","0ní","0ním","0ním", "0ní","0ních","0ním","0ní","0ní","0ních","0ními" ]
23
+
24
+ @vzor << [ "m","-[i]tel","0tele","0teli","0tele","0tel","0teli","0telem", "0telé","0telů","0telům","0tele","0telé","0telích","0teli" ]
25
+ @vzor << [ "m","-[í]tel","0tele","0teli","0tele","0tel","0teli","0telem", "átelé","áteli","átelům","átele","átelé","átelích","áteli" ]
26
+
27
+
28
+ @vzor << [ "s","-é","ého","ému","é","é","ém","ým", "-á","ých","ým","á","á","ých","ými" ]
29
+ @vzor << [ "ž","-á","é","é","ou","á","é","ou", "-é","ých","ým","é","é","ých","ými" ]
30
+ @vzor << [ "-","já","mne","mně","mne/mě","já","mně","mnou", "my","nás","nám","nás","my","nás","námi" ]
31
+ @vzor << [ "-","ty","tebe","tobě","tě/tebe","ty","tobě","tebou", "vy","vás","vám","vás","vy","vás","vámi" ]
32
+ @vzor << [ "-","my","","","","","","", "my","nás","nám","nás","my","nás","námi" ]
33
+ @vzor << [ "-","vy","","","","","","", "vy","vás","vám","vás","vy","vás","vámi" ]
34
+ @vzor << [ "m","on","něho","mu/jemu/němu","ho/jej","on","něm","ním", "oni","nich","nim","je","oni","nich","jimi/nimi" ]
35
+ @vzor << [ "m","oni","","","","","","", "oni","nich","nim","je","oni","nich","jimi/nimi" ]
36
+ @vzor << [ "ž","ony","","","","","","", "ony","nich","nim","je","ony","nich","jimi/nimi" ]
37
+ @vzor << [ "s","ono","něho","mu/jemu/němu","ho/jej","ono","něm","ním", "ona","nich","nim","je","ony","nich","jimi/nimi" ]
38
+ @vzor << [ "ž","ona","ní","ní","ji","ona","ní","ní", "ony","nich","nim","je","ony","nich","jimi/nimi" ]
39
+ @vzor << [ "m","ten","toho","tomu","toho","ten","tom","tím", "ti","těch","těm","ty","ti","těch","těmi" ]
40
+ @vzor << [ "ž","ta","té","té","tu","ta","té","tou", "ty","těch","těm","ty","ty","těch","těmi" ]
41
+ @vzor << [ "s","to","toho","tomu","toho","to","tom","tím", "ta","těch","těm","ta","ta","těch","těmi" ]
42
+
43
+ # přivlastňovací zájmena
44
+ @vzor << [ "m","můj", "mého", "mému", "mého", "můj", "mém", "mým", "mí", "mých","mým","mé","mí","mých","mými" ]
45
+ @vzor << [ "ž","má", "mé", "mé", "mou", "má", "mé", "mou", "mé", "mých","mým","mé","mé","mých","mými" ]
46
+ @vzor << [ "ž","moje","mé", "mé", "mou", "má", "mé", "mou", "mé", "mých","mým","mé","mé","mých","mými" ]
47
+ @vzor << [ "s","mé", "mého", "mému", "mého", "moje", "mém", "mým", "má", "mých","mým","mé","má","mých","mými" ]
48
+ @vzor << [ "s","moje","mého", "mému", "mého", "moje", "mém", "mým", "má", "mých","mým","mé","má","mých","mými" ]
49
+
50
+ @vzor << [ "m","tvůj", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tví", "tvých","tvým","tvé","tví","tvých","tvými" ]
51
+ @vzor << [ "ž","tvá", "tvé", "tvé", "tvou", "tvá", "tvé", "tvou", "tvé", "tvých","tvým","tvé","tvé","tvých","tvými" ]
52
+ @vzor << [ "ž","tvoje","tvé", "tvé", "tvou", "tvá", "tvé", "tvou", "tvé", "tvých","tvým","tvé","tvé","tvých","tvými" ]
53
+ @vzor << [ "s","tvé", "tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tvá", "tvých","tvým","tvé","tvá","tvých","tvými" ]
54
+ @vzor << [ "s","tvoje","tvého", "tvému", "tvého", "tvůj", "tvém", "tvým", "tvá", "tvých","tvým","tvé","tvá","tvých","tvými" ]
55
+
56
+ @vzor << [ "m","náš", "našeho", "našemu", "našeho", "náš", "našem", "našim", "naši", "našich","našim","naše","naši","našich","našimi" ]
57
+ @vzor << [ "ž","naše", "naší", "naší", "naši", "naše", "naší", "naší", "naše", "našich","našim","naše","naše","našich","našimi" ]
58
+ @vzor << [ "s","naše", "našeho", "našemu", "našeho", "naše", "našem", "našim", "naše", "našich","našim","naše","naše","našich","našimi" ]
59
+
60
+ @vzor << [ "m","váš", "vašeho", "vašemu", "vašeho", "váš", "vašem", "vašim", "vaši", "vašich","vašim","vaše","vaši","vašich","vašimi" ]
61
+ @vzor << [ "ž","vaše", "vaší", "vaší", "vaši", "vaše", "vaší", "vaší", "vaše", "vašich","vašim","vaše","vaše","vašich","vašimi" ]
62
+ @vzor << [ "s","vaše", "vašeho", "vašemu", "vašeho", "vaše", "vašem", "vašim", "vaše", "vašich","vašim","vaše","vaše","vašich","vašimi" ]
63
+
64
+ @vzor << [ "m","jeho","jeho","jeho","jeho","jeho","jeho","jeho", "jeho","jeho","jeho","jeho","jeho","jeho","jeho" ]
65
+ @vzor << [ "ž","jeho","jeho","jeho","jeho","jeho","jeho","jeho", "jeho","jeho","jeho","jeho","jeho","jeho","jeho" ]
66
+ @vzor << [ "s","jeho","jeho","jeho","jeho","jeho","jeho","jeho", "jeho","jeho","jeho","jeho","jeho","jeho","jeho" ]
67
+
68
+ @vzor << [ "m","její", "jejího", "jejímu", "jejího", "její", "jejím", "jejím", "její","jejích","jejím","její","její","jejích","jejími" ]
69
+ @vzor << [ "s","její", "jejího", "jejímu", "jejího", "její", "jejím", "jejím", "její","jejích","jejím","její","její","jejích","jejími" ]
70
+ @vzor << [ "ž","její", "její", "její", "její", "její", "její", "její", "její","jejích","jejím","její","její","jejích","jejími" ]
71
+
72
+ @vzor << [ "m","jejich","jejich","jejich","jejich","jejich","jejich","jejich", "jejich","jejich","jejich","jejich","jejich","jejich","jejich" ]
73
+ @vzor << [ "s","jejich","jejich","jejich","jejich","jejich","jejich","jejich", "jejich","jejich","jejich","jejich","jejich","jejich","jejich" ]
74
+ @vzor << [ "ž","jejich","jejich","jejich","jejich","jejich","jejich","jejich", "jejich","jejich","jejich","jejich","jejich","jejich","jejich" ]
75
+
76
+
77
+ # výjimky (zvl. běžná slova)
78
+ @vzor << [ "m","-bůh", "boha","bohu","boha","bože","bohovi","bohem","bozi/bohové","bohů","bohům","bohy","bozi/bohové","bozích","bohy" ]
79
+ @vzor << [ "m","-pan", "pana","panu","pana","pane","panu", "panem","páni/pánové","pánů","pánům","pány","páni/bohové","pánech","pány" ]
80
+ @vzor << [ "-","-dveře", "","","","","","","dveře","dveří","dveřím","dveře","dveře","dveřích","dveřmi" ]
81
+ @vzor << [ "m","-vztek", "vzteku","vzteku","vztek","vzteku","vzteku", "vztekem","vzteky","vzteků","vztekům","vzteky","vzteky","vztecích","vzteky" ]
82
+ @vzor << [ "m","-dotek", "doteku","doteku","dotek","doteku","doteku", "dotekem","doteky","doteků","dotekům","doteky","doteky","dotecích","doteky" ]
83
+ @vzor << [ "ž","-hra", "hry","hře","hru","hro","hře", "hrou","hry","her","hrám","hry","hry","hrách","hrami" ]
84
+
85
+ # číslovky
86
+ @vzor << [ "-","-tdva", "tidvou", "tidvoum", "tdva", "tdva", "tidvou", "tidvěmi","?","?","?","?","?","?","?" ]
87
+ @vzor << [ "-","-tdvě", "tidvou", "tidvěma", "tdva", "tdva", "tidvou", "tidvěmi","?","?","?","?","?","?","?" ]
88
+ @vzor << [ "-","-ttři", "titří", "titřem", "ttři", "ttři", "titřech", "titřemi","?","?","?","?","?","?","?" ]
89
+ @vzor << [ "-","-tčtyři", "tičtyřech", "tičtyřem","tčtyři","tčtyři","tičtyřech", "tičtyřmi","?","?","?","?","?","?","?" ]
90
+ @vzor << [ "-","-tpět", "tipěti", "tipěti", "tpět", "tpět", "tipěti", "tipěti","?","?","?","?","?","?","?" ]
91
+ @vzor << [ "-","-tšest", "tišesti", "tišesti", "tšest", "tšest","tišesti", "tišesti","?","?","?","?","?","?","?" ]
92
+ @vzor << [ "-","-tsedm", "tisedmi", "tisedmi", "tsedm", "tsedm","tisedmi", "tisedmi","?","?","?","?","?","?","?" ]
93
+ @vzor << [ "-","-tosm", "tiosmi", "tiosmi", "tosm", "tosm", "tiosmi", "tiosmi","?","?","?","?","?","?","?" ]
94
+ @vzor << [ "-","-tdevět", "tidevíti", "tidevíti", "tdevět", "tdevět","tidevíti","tidevíti","?","?","?","?","?","?","?" ]
95
+
96
+ @vzor << [ "ž","-jedna", "jedné","jedné","jednu","jedno","jedné", "jednou","?","?","?","?","?","?","?" ]
97
+ @vzor << [ "m","-jeden", "jednoho","jednomu","jednoho","jeden","jednom", "jedním","?","?","?","?","?","?","?" ]
98
+ @vzor << [ "s","-jedno", "jednoho","jednomu","jednoho","jedno","jednom", "jedním","?","?","?","?","?","?","?" ]
99
+ @vzor << [ "-","-dva", "dvou","dvoum","dva","dva","dvou", "dvěmi","?","?","?","?","?","?","?" ]
100
+ @vzor << [ "-","-dvě", "dvou","dvoum","dva","dva","dvou", "dvěmi","?","?","?","?","?","?","?" ]
101
+ @vzor << [ "-","-tři", "tří","třem","tři","tři","třech", "třemi","?","?","?","?","?","?","?" ]
102
+ @vzor << [ "-","-čtyři", "čtyřech","čtyřem","čtyři","čtyři","čtyřech", "čtyřmi","?","?","?","?","?","?","?" ]
103
+ @vzor << [ "-","-pět", "pěti","pěti","pět","pět","pěti", "pěti","?","?","?","?","?","?","?" ]
104
+ @vzor << [ "-","-šest", "šesti","šesti","šest","šest","šesti", "šesti","?","?","?","?","?","?","?" ]
105
+ @vzor << [ "-","-sedm", "sedmi","sedmi","sedm","sedm","sedmi", "sedmi","?","?","?","?","?","?","?" ]
106
+ @vzor << [ "-","-osm", "osmi","osmi","osm","osm","osmi", "osmi","?","?","?","?","?","?","?" ]
107
+ @vzor << [ "-","-devět", "devíti","devíti","devět","devět","devíti", "devíti","?","?","?","?","?","?","?" ]
108
+
109
+ @vzor << [ "-","deset", "deseti","deseti","deset","deset","deseti", "deseti","?","?","?","?","?","?","?" ]
110
+ @vzor << [ "-","-ná[cs]t","ná0ti","ná0ti","ná0t","náct","ná0ti","ná0ti", "?","?","?","?","?","?","?" ]
111
+
112
+ @vzor << [ "-","-dvacet", "dvaceti","dvaceti","dvacet","dvacet","dvaceti", "dvaceti","?","?","?","?","?","?","?" ]
113
+ @vzor << [ "-","-třicet", "třiceti","třiceti","třicet","třicet","třiceti", "třiceti","?","?","?","?","?","?","?" ]
114
+ @vzor << [ "-","-čtyřicet", "čtyřiceti","čtyřiceti","čtyřicet","čtyřicet","čtyřiceti", "čtyřiceti","?","?","?","?","?","?","?" ]
115
+ @vzor << [ "-","-desát", "desáti","desáti","desát","desát","desáti", "desáti","?","?","?","?","?","?","?" ]
116
+
117
+
118
+
119
+ #
120
+ # Spec. přídady skloňování(+předseda, srdce jako úplná výjimka)
121
+ #
122
+ @vzor << [ "m","-[i]sta", "0sty","0stovi","0stu","0sto","0stovi","0stou", "-0sté","0stů","0stům","0sty","0sté","0stech","0sty" ]
123
+ @vzor << [ "m","-[o]sta", "0sty","0stovi","0stu","0sto","0stovi","0stou", "-0stové","0stů","0stům","0sty","0sté","0stech","0sty" ]
124
+ @vzor << [ "m","-předseda", "předsedy","předsedovi","předsedu","předsedo","předsedovi","předsedou", "předsedové","předsedů","předsedům","předsedy","předsedové","předsedech","předsedy" ]
125
+ @vzor << [ "m","-srdce", "srdce","srdi","sdrce","srdce","srdci","srdcem", "srdce","srdcí","srdcím","srdce","srdce","srdcích","srdcemi" ]
126
+ @vzor << [ "m","-[db]ce", "0ce","0ci","0ce","0če","0ci","0cem", "0ci/0cové","0ců","0cům","0ce","0ci/0cové","0cích","0ci" ]
127
+ @vzor << [ "m","-[jň]ev", "0evu", "0evu", "0ev", "0eve", "0evu", "0evem", "-0evy", "0evů","0evům","0evy", "0evy", "0evech", "0evy" ]
128
+ @vzor << [ "m","-[lř]ev", "0evu/0va", "0evu/0vovi", "0ev/0va", "0eve/0ve", "0evu/0vovi", "0evem/0vem", "-0evy/0vové", "0evů/0vů","0evům/0vům","0evy/0vy", "0evy/0vové", "0evech/0vech", "0evy/0vy" ]
129
+
130
+ @vzor << [ "m","-ů[lz]","o0u/o0a","o0u/o0ovi","ů0/o0a","o0e","o0u","o0em", "o-0y/o-0ové","o0ů","o0ům","o0y","o0y/o0ové","o0ech","o0y" ]
131
+
132
+ # výj. nůž (vzor muž)
133
+ @vzor << [ "m","nůž","nože","noži","nůž","noži","noži","nožem", "nože","nožů","nožům","nože","nože","nožích","noži" ]
134
+
135
+
136
+ #
137
+ # Vzor kolo
138
+ #
139
+ @vzor << [ "s","-[bcčdghksštvzž]lo","0la","0lu","0lo","0lo","0lu","0lem", "-0la","0el","0lům","0la","0la","0lech","0ly" ]
140
+ @vzor << [ "s","-[bcčdnsštvzž]ko","0ka","0ku","0ko","0ko","0ku","0kem", "-0ka","0ek","0kům","0ka","0ka","0cích/0kách","0ky" ]
141
+ @vzor << [ "s","-[bcčdksštvzž]no","0na","0nu","0no","0no","0nu","0nem", "-0na","0en","0nům","0na","0na","0nech/0nách","0ny" ]
142
+ @vzor << [ "s","-o","a","u","o","o","u","em", "-a","","ům","a","a","ech","y" ]
143
+
144
+
145
+ #
146
+ # Vzor stavení
147
+ #
148
+ @vzor << [ "s","-í","í","í","í","í","í","ím", "-í","í","ím","í","í","ích","ími" ]
149
+ #
150
+ # Vzor děvče (če,dě,tě,ně,pě) výj.-také sele
151
+ #
152
+ @vzor << [ "s","-[čďť][e]","10te","10ti","10","10","10ti","10tem", "1-ata","1at","1atům","1ata","1ata","1atech","1aty" ]
153
+ @vzor << [ "s","-[pb][ě]","10te","10ti","10","10","10ti","10tem", "1-ata","1at","1atům","1ata","1ata","1atech","1aty" ]
154
+
155
+ #
156
+ # Vzor žena
157
+ #
158
+ @vzor << [ "ž","-[aeiouyáéíóúý]ka","0ky","0ce","0ku","0ko","0ce","0kou", "-0ky","0k","0kám","0ky","0ky","0kách","0kami" ]
159
+ @vzor << [ "ž","-ka","ky","ce","ku","ko","ce","kou", "-ky","ek","kám","ky","ky","kách","kami" ]
160
+ @vzor << [ "ž","-[bdghkmnptvz]ra","0ry","0ře","0ru","0ro","0ře","0rou", "-0ry","0er","0rám","0ry","0ry","0rách","0rami" ]
161
+ @vzor << [ "ž","-ra","ry","ře","ru","ro","ře","rou", "-ry","r","rám","ry","ry","rách","rami" ]
162
+ @vzor << [ "ž","-[tdbnvmp]a","0y","0ě","0u","0o","0ě","0ou", "-0y","0","0ám","0y","0y","0ách","0ami" ]
163
+ @vzor << [ "ž","-cha","chy","še","chu","cho","še","chou", "-chy","ch","chám","chy","chy","chách","chami" ]
164
+ @vzor << [ "ž","-[gh]a","0y","ze","0u","0o","ze","0ou", "-0y","0","0ám","0y","0y","0ách","0ami" ]
165
+ @vzor << [ "ž","-ňa","ni","ně","ňou","ňo","ni","ňou", "-ně/ničky","ň","ňám","ně/ničky","ně/ničky","ňách","ňami" ]
166
+ @vzor << [ "ž","-[šč]a", "0i","0e","0u","0o","0e","0ou", "-0e/0i","0","0ám","0e/0i","0e/0i","0ách","0ami" ]
167
+ @vzor << [ "ž","-a", "y","e","u","o","e","ou", "-y","","ám","y","y","ách","ami" ]
168
+
169
+ # vz. píseň
170
+ @vzor << [ "ž","-eň","ně","ni","eň","ni","ni","ní", "-ně","ní","ním","ně","ně","ních","němi" ]
171
+ @vzor << [ "ž","-oň","oně","oni","oň","oni","oni","oní", "-oně","oní","oním","oně","oně","oních","oněmi" ]
172
+ @vzor << [ "ž","-[ě]j","0je","0ji","0j","0ji","0ji","0jí", "-0je","0jí","0jím","0je","0je","0jích","0jemi" ]
173
+
174
+ #
175
+ # Vzor růže
176
+ #
177
+ @vzor << [ "ž","-ev","ve","vi","ev","vi","vi","ví", "-ve","ví","vím","ve","ve","vích","vemi" ]
178
+ @vzor << [ "ž","-ice", "ice", "ici", "ici", "ice", "ici", "icí", "-ice", "ic", "icím", "ice", "ice", "icích", "icemi" ]
179
+ @vzor << [ "ž","-e", "e", "i", "i", "e", "i", "í", "-e", "í", "ím", "e", "e", "ích", "emi" ]
180
+
181
+ #
182
+ # Vzor píseň
183
+ #
184
+ @vzor << [ "ž","-[eaá][jžň]","10e/10i","10i","10","10i","10i","10í", "-10e/10i","10í","10ím","10e","10e","10ích","10emi" ]
185
+ @vzor << [ "ž","-[eayo][š]","10e/10i","10i","10","10i","10i","10í", "10e/10i","10í","10ím","10e","10e","10ích","10emi" ]
186
+ @vzor << [ "ž","-[íy]ň","0ně","0ni","0ň","0ni","0ni","0ní", "-0ně","0ní","0ním","0ně","0ně","0ních","0němi" ]
187
+ @vzor << [ "ž","-[íyý]ňe","0ně","0ni","0ň","0ni","0ni","0ní", "-0ně","0ní","0ním","0ně","0ně","0ních","0němi" ]
188
+ @vzor << [ "ž","-[ťďž]","0e","0i","0","0i","0i","0í", "-0e","0í","0ím","0e","0e","0ích","0emi" ]
189
+ @vzor << [ "ž","-toř","toře","toři","toř","toři","toři","toří", "-toře","toří","tořím","toře","toře","tořích","tořemi" ]
190
+
191
+ #
192
+ # Vzor kost
193
+ #
194
+ @vzor << [ "ž","-st","sti","sti","st","sti","sti","stí", "-sti","stí","stem","sti","sti","stech","stmi" ]
195
+ @vzor << [ "ž","ves","vsi","vsi","ves","vsi","vsi","vsí", "vsi","vsí","vsem","vsi","vsi","vsech","vsemi" ]
196
+
197
+
198
+ #
199
+ # Vzor Amadeus, Celsius, Kumulus, rektikulum, praktikum
200
+ #
201
+ @vzor << [ "m","-[e]us", "0a", "0u/0ovi", "0a", "0e", "0u/0ovi", "0em", "0ové", "0ů", "0ům", "0y", "0ové", "0ích", "0y" ]
202
+ @vzor << [ "m","-[i]us", "0a", "0u/0ovi", "0a", "0e", "0u/0ovi", "0em", "0ové", "0ů", "0ům", "0usy", "0ové", "0ích", "0usy" ]
203
+ @vzor << [ "m","-[i]s", "0se", "0su/0sovi", "0se", "0se/0si", "0su/0sovi", "0sem", "0sy/0sové", "0sů", "0sům", "0sy", "0sy/0ové", "0ech", "0sy" ]
204
+ @vzor << [ "m","výtrus", "výtrusu", "výtrusu", "výtrus", "výtruse", "výtrusu", "výtrusem", "výtrusy", "výtrusů", "výtrusům", "výtrusy", "výtrusy", "výtrusech", "výtrusy" ]
205
+ @vzor << [ "m","trus", "trusu", "trusu", "trus", "truse", "trusu", "trusem", "trusy", "trusů", "trusům", "trusy", "trusy", "trusech", "trusy" ]
206
+ @vzor << [ "m","-[aeioumpts][lnmrktp]us", "10u/10a", "10u/10ovi", "10us/10a", "10e", "10u/10ovi", "10em", "10y/10ové", "10ů", "10ům", "10y", "10y/10ové", "10ech", "10y" ]
207
+ @vzor << [ "s","-[l]um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0", "0ům", "0a", "0a", "0ech", "0y" ]
208
+ @vzor << [ "s","-[k]um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0", "0ům", "0a", "0a", "0cích", "0y" ]
209
+ @vzor << [ "s","-[i]um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0í", "0ům", "0a", "0a", "0iích", "0y" ]
210
+ @vzor << [ "s","-[i]um", "0a", "0u", "0um", "0um", "0u", "0em", "0a", "0ejí", "0ům", "0a", "0a", "0ejích", "0y" ]
211
+ @vzor << [ "s","-io", "0a", "0u", "0", "0", "0u", "0em", "0a", "0í", "0ům", "0a", "0a", "0iích", "0y" ]
212
+
213
+ #
214
+ # Vzor sedlák
215
+ #
216
+
217
+ @vzor << [ "m","-[aeiouyáéíóúý]r","0ru/0ra","0ru/0rovi","0r/0ra","0re","0ru/0rovi","0rem", "-0ry/-0rové","0rů","0rům","0ry","0ry/0rové", "0rech","0ry" ]
218
+ # @vzor << [ "m","-[aeiouyáéíóúý]r","0ru/0ra","0ru/0rovi","0r/0ra","0re","0ru/0rovi","0rem", "-0ry/-0ři","0rů","0rům","0ry","0ry/0ři", "0rech","0ry" ]
219
+ @vzor << [ "m","-r", "ru/ra", "ru/rovi", "r/ra", "ře", "ru/rovi", "rem", "-ry/-rové", "rů","rům","ry", "ry/rové", "rech", "ry" ]
220
+ # @vzor << [ "m","-r", "ru/ra", "ru/rovi", "r/ra", "ře", "ru/rovi", "rem", "-ry/-ři", "rů","rům","ry", "ry/ři", "rech", "ry" ]
221
+ @vzor << [ "m","-[bcčdnmprstvz]en","0nu/0na","0nu/0novi","0en/0na","0ne", "0nu/0novi", "0nem", "-0ny/0nové", "0nů","0nům","0ny", "0ny/0nové", "0nech", "0ny" ]
222
+ @vzor << [ "m","-[dglmnpbtvzs]", "0u/0a", "0u/0ovi", "0/0a", "0e", "0u/0ovi", "0em", "-0y/0ové", "0ů","0ům","0y", "0y/0ové", "0ech", "0y" ]
223
+ @vzor << [ "m","-[x]", "0u/0e", "0u/0ovi", "0/0e", "0i", "0u/0ovi", "0em", "-0y/0ové", "0ů","0ům","0y", "0y/0ové", "0ech", "0y" ]
224
+ @vzor << [ "m","sek", "seku/seka","seku/sekovi","sek/seka","seku","seku/sekovi","sekem", "seky/sekové","seků","sekům","seky", "seky/sekové","secích","seky" ]
225
+ @vzor << [ "m","výsek", "výseku/výseka","výseku/výsekovi","výsek/výseka","výseku","výseku/výsekovi","výsekem", "výseky/výsekové","výseků","výsekům","výseky", "výseky/výsekové","výsecích","výseky" ]
226
+ @vzor << [ "m","zásek", "záseku/záseka","záseku/zásekovi","zásek/záseka","záseku","záseku/zásekovi","zásekem", "záseky/zásekové","záseků","zásekům","záseky", "záseky/zásekové","zásecích","záseky" ]
227
+ @vzor << [ "m","průsek", "průseku/průseka","průseku/průsekovi","průsek/průseka","průseku","průseku/průsekovi","průsekem", "průseky/průsekové","průseků","výsekům","průseky", "průseky/průsekové","průsecích","průseky" ]
228
+ @vzor << [ "m","-[cčšždnňmpbrstvz]ek", "0ku/0ka","0ku/0kovi","0ek/0ka","0ku","0ku/0kovi","0kem", "-0ky/0kové","0ků","0kům","0ky", "0ky/0kové","0cích","0ky" ]
229
+ @vzor << [ "m","-[k]", "0u/0a", "0u/0ovi", "0/0a", "0u", "0u/0ovi", "0em", "-0y/0ové", "0ů","0ům","0y", "0y/0ové", "cích", "0y" ]
230
+ @vzor << [ "m","-ch", "chu/cha", "chu/chovi","ch/cha","chu/cha","chu/chovi","chem", "-chy/chové","chů","chům","chy", "chy/chové","ších", "chy" ]
231
+ @vzor << [ "m","-[h]", "0u/0a", "0u/0ovi", "0/0a", "0u/0a", "0u/0ovi", "0em", "-0y/0ové", "0ů","0ům","0y", "0y/0ové", "zích", "0y" ]
232
+ @vzor << [ "m","-e[mnz]", "0u/0a", "0u/0ovi", "e0/e0a","0e", "0u/0ovi", "0em", "-0y/0ové", "0ů","0ům","0y", "0y/0ové", "0ech", "0y" ]
233
+
234
+
235
+ #
236
+ # Vzor muž
237
+ #
238
+ @vzor << [ "m","-ec", "ce", "ci/covi", "ec/ce", "če", "ci/covi", "cem", "-ce/cové", "ců", "cům", "ce", "ce/cové", "cích", "ci" ]
239
+ @vzor << [ "m","-[cčďšňřťž]", "0e", "0i/0ovi", "0e", "0i", "0i/0ovi", "0em", "-0e/0ové", "0ů", "0ům", "0e", "0e/0ové", "0ích", "0i" ]
240
+ @vzor << [ "m","-oj", "oje", "oji/ojovi", "oj/oje", "oji", "oji/ojovi", "ojem", "-oje/ojové", "ojů", "ojům", "oje", "oje/ojové", "ojích", "oji" ]
241
+
242
+ # Vzory pro přetypování rodu
243
+ @vzor << [ "m","-[gh]a", "0y","0ovi","0u","0o","0ovi","0ou", "0ové", "0ů", "0ům", "0y", "0ové", "zích", "0y" ]
244
+ @vzor << [ "m","-[k]a", "0y","0ovi","0u","0o","0ovi","0ou", "0ové", "0ů", "0ům", "0y", "0ové", "cích", "0y" ]
245
+ @vzor << [ "m","-a", "y", "ovi", "u", "o", "ovi", "ou", "ové", "ů", "ům", "y", "ové", "ech", "y" ]
246
+
247
+ @vzor << [ "ž","-l", "le", "li", "l", "li", "li", "lí", "le", "lí", "lím", "le", "le", "lích", "lemi" ]
248
+ @vzor << [ "ž","-í", "í", "í", "í", "í", "í", "í", "í", "ích", "ím", "í", "í", "ích", "ími" ]
249
+ @vzor << [ "ž","-[jř]", "0e", "0i", "0", "0i", "0i", "0í", "0e", "0í", "0ím", "0e", "0e", "0ích", "0emi" ]
250
+ @vzor << [ "ž","-[č]", "0i", "0i", "0", "0i", "0i", "0í", "0i", "0í", "0ím", "0i", "0i", "0ích", "0mi" ]
251
+ @vzor << [ "ž","-[š]", "0i", "0i", "0", "0i", "0i", "0í", "0i", "0í", "0ím", "0i", "0i", "0ích", "0emi" ]
252
+
253
+ @vzor << [ "s","-[sljřň]e", "0ete", "0eti", "0e", "0e", "0eti", "0etem", "0ata", "0at", "0atům", "0ata", "0ata", "0atech", "0aty" ]
254
+ # @vzor << [ "ž","-cí", "cí", "cí", "cí", "cí", "cí", "cí", "cí", "cích", "cím", "cí", "cí", "cích", "cími" ]
255
+ # čaj, prodej, Ondřej, žokej
256
+ @vzor << [ "m","-j", "je", "ji", "j", "ji", "ji", "jem", "je/jové", "jů", "jům", "je", "je/jové", "jích", "ji" ]
257
+ # Josef, Detlef, ... ?
258
+ @vzor << [ "m","-f", "fa", "fu/fovi", "f/fa", "fe", "fu/fovi", "fem", "fy/fové", "fů", "fům", "fy", "fy/fové", "fech", "fy" ]
259
+ # zbroj, výzbroj, výstroj, trofej, neteř
260
+ # jiří, podkoní, ... ?
261
+ @vzor << [ "m","-í", "ího", "ímu", "ího", "í", "ímu", "ím", "í", "ích", "ím", "í", "í", "ích", "ími" ]
262
+ # Hugo
263
+ @vzor << [ "m","-go", "a", "govi", "ga", "ga", "govi", "gem", "gové", "gů", "gům", "gy", "gové", "zích", "gy" ]
264
+ # Kvido
265
+ @vzor << [ "m","-o", "a", "ovi", "a", "a", "ovi", "em", "ové", "ů", "ům", "y", "ové", "ech", "y" ]
266
+
267
+
268
+ # doplňky
269
+ # některá pomnožná jména
270
+ @vzor << [ "?","-[tp]y", "?", "?", "?", "?", "?", "?", "-0y", "0", "0ům", "0y", "0y", "0ech", "0ami" ]
271
+ @vzor << [ "?","-[k]y", "?", "?", "?", "?", "?", "?", "-0y", "e0", "0ám", "0y", "0y", "0ách", "0ami" ]
272
+
273
+ # Výjimky:
274
+ # v1 - přehlásky
275
+ # : důl ... dol, stůl ... stol, nůž ... nož, hůl ... hole, půl ... půle
276
+ @v1 = []
277
+ # 1.p náhrada 4.p.
278
+ #
279
+ @v1 << [ "osel", "osl", "osla" ]
280
+ @v1 << [ "karel", "karl", "karla" ]
281
+ @v1 << [ "Karel", "Karl", "Karla" ]
282
+ @v1 << [ "pavel", "pavl", "pavla" ]
283
+ @v1 << [ "Pavel", "Pavl", "Pavla" ]
284
+ @v1 << [ "Havel", "Havl", "Havla" ]
285
+ @v1 << [ "havel", "havl", "havla" ]
286
+ @v1 << [ "Bořek", "Bořk", "Bořka" ]
287
+ @v1 << [ "bořek", "bořk", "bořka" ]
288
+ @v1 << [ "Luděk", "Luďk", "Luďka" ]
289
+ @v1 << [ "luděk", "luďk", "luďka" ]
290
+ @v1 << [ "pes", "ps", "psa" ]
291
+ @v1 << [ "pytel", "pytl","pytel" ]
292
+ @v1 << [ "ocet", "oct", "octa" ]
293
+ @v1 << [ "chléb", "chleb","chleba" ]
294
+ @v1 << [ "chleba", "chleb","chleba" ]
295
+ @v1 << [ "pavel", "pavl", "pavla" ]
296
+ @v1 << [ "kel", "kl", "kel" ]
297
+ @v1 << [ "sopel", "sopl", "sopel" ]
298
+ @v1 << [ "posel", "posl", "posla" ]
299
+ @v1 << [ "důl", "dol", "důl" ]
300
+ @v1 << [ "sůl", "sole", "sůl" ]
301
+ @v1 << [ "vůl", "vol", "vola" ]
302
+ @v1 << [ "půl", "půle", "půli" ]
303
+ @v1 << [ "hůl", "hole", "hůl" ]
304
+ @v1 << [ "stůl", "stol", "stůl" ]
305
+ @v1 << [ "líh", "lih", "líh" ]
306
+ @v1 << [ "sníh", "sněh", "sníh" ]
307
+ @v1 << [ "zář", "záře", "zář" ]
308
+ @v1 << [ "svatozář", "svatozáře", "svatozář" ]
309
+ @v1 << [ "kůň", "koň", "koně" ]
310
+ @v1 << [ "tůň", "tůňe", "tůň" ]
311
+ # --- !
312
+ @v1 << [ "prsten", "prstýnek", "prstýnku" ]
313
+ @v1 << [ "smrt", "smrť", "smrt" ]
314
+ @v1 << [ "vítr", "větr", "vítr" ]
315
+ @v1 << [ "stupeň", "stupň", "stupeň" ]
316
+ @v1 << [ "peň", "pň", "peň" ]
317
+ @v1 << [ "cyklus", "cykl", "cyklus" ]
318
+ @v1 << [ "dvůr", "dvor", "dvůr" ]
319
+ @v1 << [ "zeď", "zď", "zeď" ]
320
+ @v1 << [ "účet", "účt", "účet" ]
321
+ @v1 << [ "mráz", "mraz", "mráz" ]
322
+ @v1 << [ "hnůj", "hnoj", "hnůj" ]
323
+ @v1 << [ "skrýš", "skrýše", "skrýš" ]
324
+ @v1 << [ "nehet", "neht", "nehet" ]
325
+ @v1 << [ "veš", "vš", "veš" ]
326
+ @v1 << [ "déšť", "dešť", "déšť" ]
327
+ @v1 << [ "myš", "myše", "myš" ]
328
+
329
+ # v10 - zmena rodu na muzsky
330
+ @v10 = []
331
+ @v10 << "sleď"
332
+ @v10 << "saša"
333
+ @v10 << "Saša"
334
+ @v10 << "dešť"
335
+ @v10 << "koň"
336
+ @v10 << "chlast"
337
+ @v10 << "plast"
338
+ @v10 << "termoplast"
339
+ @v10 << "vězeň"
340
+ @v10 << "sťežeň"
341
+ @v10 << "papež"
342
+ @v10 << "ďeda"
343
+ @v10 << "zeť"
344
+ @v10 << "háj"
345
+ @v10 << "lanýž"
346
+ @v10 << "sluha"
347
+ @v10 << "muž"
348
+ @v10 << "velmož"
349
+ @v10 << "Maťej"
350
+ @v10 << "maťej"
351
+ @v10 << "táta"
352
+ @v10 << "kolega"
353
+ @v10 << "mluvka"
354
+ @v10 << "strejda"
355
+ @v10 << "polda"
356
+ @v10 << "moula"
357
+ @v10 << "šmoula"
358
+ @v10 << "slouha"
359
+ @v10 << "drákula"
360
+ @v10 << "test"
361
+ @v10 << "rest"
362
+ @v10 << "trest"
363
+ @v10 << "arest"
364
+ @v10 << "azbest"
365
+ @v10 << "ametyst"
366
+ @v10 << "chřest"
367
+ @v10 << "protest"
368
+ @v10 << "kontest"
369
+ @v10 << "motorest"
370
+ @v10 << "most"
371
+ @v10 << "host"
372
+ @v10 << "kříž"
373
+ @v10 << "stupeň"
374
+ @v10 << "peň"
375
+ @v10 << "čaj"
376
+ @v10 << "prodej"
377
+ @v10 << "výdej"
378
+ @v10 << "výprodej"
379
+ @v10 << "ďej"
380
+ @v10 << "zloďej"
381
+ @v10 << "žokej"
382
+ @v10 << "hranostaj"
383
+ @v10 << "dobroďej"
384
+ @v10 << "darmoďej"
385
+ @v10 << "čaroďej"
386
+ @v10 << "koloďej"
387
+ @v10 << "sprej"
388
+ @v10 << "displej"
389
+ @v10 << "Aleš"
390
+ @v10 << "aleš"
391
+ @v10 << "Ambrož"
392
+ @v10 << "ambrož"
393
+ @v10 << "Tomáš"
394
+ @v10 << "Lukáš"
395
+ @v10 << "Tobiáš"
396
+ @v10 << "Jiří"
397
+ @v10 << "tomáš"
398
+ @v10 << "lukáš"
399
+ @v10 << "tobiáš"
400
+ @v10 << "jiří"
401
+ @v10 << "podkoní"
402
+ @v10 << "komoří"
403
+ @v10 << "Jirka"
404
+ @v10 << "jirka"
405
+ @v10 << "Ilja"
406
+ @v10 << "ilja"
407
+ @v10 << "Pepa"
408
+ @v10 << "Ondřej"
409
+ @v10 << "Andrej"
410
+ # @v10 << "josef"
411
+ @v10 << "mikuláš"
412
+ @v10 << "Mikuláš"
413
+ @v10 << "Mikoláš"
414
+ @v10 << "mikoláš"
415
+ @v10 << "Kvido"
416
+ @v10 << "kvido"
417
+ @v10 << "Hugo"
418
+ @v10 << "hugo"
419
+ @v10 << "Oto"
420
+ @v10 << "oto"
421
+ @v10 << "Otto"
422
+ @v10 << "otto"
423
+ @v10 << "Alexej"
424
+ @v10 << "alexej"
425
+ @v10 << "Ivo"
426
+ @v10 << "ivo"
427
+ @v10 << "Bruno"
428
+ @v10 << "bruno"
429
+ @v10 << "Alois"
430
+ @v10 << "alois"
431
+ @v10 << "bartoloměj"
432
+ @v10 << "Bartoloměj"
433
+
434
+ # v11 - zmena rodu na zensky
435
+ @v11 = []
436
+ @v11 << "vš"
437
+ @v11 << "dešť"
438
+ @v11 << "zteč"
439
+ @v11 << "řeč"
440
+ @v11 << "křeč"
441
+ @v11 << "kleč"
442
+ @v11 << "maštal"
443
+ @v11 << "vš"
444
+ @v11 << "kancelář"
445
+ @v11 << "závěj"
446
+ @v11 << "zvěř"
447
+ @v11 << "sbeř"
448
+ @v11 << "neteř"
449
+ @v11 << "ves"
450
+ @v11 << "rozkoš"
451
+ # @v11 << "myša"
452
+ @v11 << "postel"
453
+ @v11 << "prdel"
454
+ @v11 << "koudel"
455
+ @v11 << "koupel"
456
+ @v11 << "ocel"
457
+ @v11 << "digestoř"
458
+ @v11 << "konzervatoř"
459
+ @v11 << "oratoř"
460
+ @v11 << "zbroj"
461
+ @v11 << "výzbroj"
462
+ @v11 << "výstroj"
463
+ @v11 << "trofej"
464
+ @v11 << "obec"
465
+ @v11 << "Miriam"
466
+ @v11 << "miriam"
467
+ @v11 << "Ester"
468
+ @v11 << "Dagmar"
469
+
470
+ # @v11 << "transmise"
471
+
472
+ # v12 - zmena rodu na stredni
473
+ @v12 = []
474
+ @v12 << "nemluvňe"
475
+ @v12 << "slůně"
476
+ @v12 << "kůzle"
477
+ @v12 << "sele"
478
+ @v12 << "osle"
479
+ @v12 << "zvíře"
480
+ @v12 << "kuře"
481
+ @v12 << "tele"
482
+ @v12 << "prase"
483
+ @v12 << "house"
484
+ @v12 << "vejce"
485
+
486
+
487
+ # v0 - nedořešené výjimky
488
+ @v0 = []
489
+ # @v0 << "ondřej"
490
+ # @v0 << "josef"
491
+ # @v0 << "déšť"
492
+ @v0 << "moře"
493
+ @v0 << "Ester"
494
+ @v0 << "Dagmar"
495
+ # @v0 << "vejce"
496
+ @v0 << "housle"
497
+ @v0 << "šle"
498
+ @v0 << "ovoce"
499
+ # @v0 << "sleď"
500
+ @v0 << "Zeus"
501
+ # @v0 << "zbroj"
502
+ # @v0 << "výzbroj"
503
+ # @v0 << "výstroj"
504
+ # @v0 << "obec"
505
+ # @v0 << "konzervatoř"
506
+ # @v0 << "digestoř"
507
+ @v0 << "humus"
508
+ @v0 << "muka"
509
+ @v0 << "noe"
510
+ @v0 << "Noe"
511
+ @v0 << "Miriam"
512
+ @v0 << "miriam"
513
+ # Je Nikola ženské nebo mužské jméno??? (podobně Sáva)
514
+
515
+ # v3 - různé odchylky ve skloňování
516
+ # - časem by bylo vhodné opravit
517
+ @v3 = []
518
+ @v3 << "jméno"
519
+ @v3 << "myš"
520
+ @v3 << "vězeň"
521
+ @v3 << "sťežeň"
522
+ @v3 << "oko"
523
+ @v3 << "sole"
524
+ @v3 << "šach"
525
+ @v3 << "veš"
526
+ @v3 << "myš"
527
+ @v3 << "klášter"
528
+ @v3 << "kněz"
529
+ @v3 << "král"
530
+ @v3 << "zď"
531
+ @v3 << "sto"
532
+ @v3 << "smrt"
533
+ @v3 << "leden"
534
+ @v3 << "len"
535
+ @v3 << "les"
536
+ @v3 << "únor"
537
+ @v3 << "březen"
538
+ @v3 << "duben"
539
+ @v3 << "květen"
540
+ @v3 << "červen"
541
+ @v3 << "srpen"
542
+ @v3 << "říjen"
543
+ @v3 << "pantofel"
544
+ @v3 << "žába"
545
+ @v3 << "zoja"
546
+ @v3 << "Zoja"
547
+ @v3 << "Zoe"
548
+ @v3 << "zoe"
549
+
550
+ @astrtvar = []
551
+ @prefrod = "0"
552
+
553
+ @ncmpreg = 0
554
+ @acmpreg = ["","","","","","","","","","","",""]
555
+
556
+
557
+ end
558
+
559
+ def self.sklonovani(slovo,pad)
560
+ initialize
561
+ on_sklonuj(slovo)
562
+ #puts @astrtvar.inspect
563
+ return @astrtvar[pad]
564
+ end
565
+
566
+ def self.on_sklonuj(vstup)
567
+ slova = vstup.split(" ")
568
+ @prefrod = "0"
569
+ slova.reverse.each do |slovo|
570
+ # vysklonovani
571
+ CzechDeclensions.skl2(slovo)
572
+ # vynuceni rodu podle posledniho slova
573
+ @prefrod = @astrtvar[0][0] if slovo == slova.first
574
+ # pokud nenajdeme vzor tak nesklonujeme
575
+ if slovo != slova.first && @astrtvar[0][0] == '?' && @prefrod[0] != '?'
576
+ for j in 1..14 do
577
+ @astrtvar[j] = slovo
578
+ end
579
+ end
580
+ end
581
+ end
582
+
583
+ def self.isshoda(vz,txt)
584
+ txt = txt.mb_chars.downcase
585
+ vz = vz.mb_chars.downcase
586
+ i = vz.mb_chars.length
587
+ j = txt.mb_chars.length
588
+
589
+ if i == 0 || j == 0
590
+ return -1
591
+ end
592
+ i -= 1
593
+ j -= 1
594
+
595
+ @ncmpreg = 0
596
+
597
+ while i >= 0 && j >= 0 do
598
+ if vz[i] == "]"
599
+ i -= 1
600
+ quit = 1
601
+ while i >= 0 && vz[i] != "[" do
602
+ if vz[i] == txt[j]
603
+ quit = 0
604
+ @acmpreg[@ncmpreg] = vz[i]
605
+ @ncmpreg += 1
606
+ end
607
+ i -= 1
608
+ end
609
+
610
+ if quit == 1
611
+ return -1
612
+ end
613
+ else
614
+ if vz[i] == '-'
615
+ return j + 1
616
+ end
617
+ if vz[i] != txt[j]
618
+ return -1
619
+ end
620
+ end
621
+
622
+ i -= 1
623
+ j -= 1
624
+ end
625
+ if i < 0 && j < 0
626
+ return 0
627
+ end
628
+
629
+ if vz[i] == '-'
630
+ return 0
631
+ end
632
+
633
+ return -1
634
+ end
635
+
636
+ def self.skl2(slovo)
637
+
638
+ @astrtvar[0] = "???"
639
+ for ii in 1..14 do
640
+ @astrtvar[ii] = ""
641
+ end
642
+
643
+ #flgv1 = ndxv1(slovo) # je ve vyjímkách???
644
+ flgv1 = @v1.transpose.slice(0).index(slovo)
645
+ if flgv1.nil?
646
+ flgv1 = -1
647
+ else
648
+ flgv1 = flgv1 / 3
649
+ end
650
+
651
+ if flgv1 >= 0
652
+ # pokud ano, bereme náhradu
653
+ slovov1 = slovo
654
+ slovo = @v1[flgv1][1]
655
+ end
656
+
657
+ # if( ii>=0 )
658
+ # {
659
+ # astrTvar[1] = "v1: " + ii;
660
+ # SklV1( slovo, ii );
661
+ # return SklFmt( astrTvar );
662
+ # return 0;
663
+ # }
664
+
665
+ slovo = xedeten(slovo)
666
+
667
+ vndx = 0
668
+
669
+ # Pretypovani rodu?
670
+ if !@v10.index(slovo).nil?
671
+ @prefrod = "m"
672
+ elsif !@v11.index(slovo).nil?
673
+ @prefrod = "ž"
674
+ elsif !@v12.index(slovo).nil?
675
+ @prefrod = "s"
676
+ end
677
+
678
+ # Nalezeni vzoru
679
+ ii = stdndx(slovo)
680
+
681
+ if ii< 0
682
+ puts "Chyba: proto toto slovo nebyl nalezen vzor."
683
+ end
684
+
685
+ # Vlastni sklonovani
686
+ sklstd(slovo,ii)
687
+
688
+ if flgv1 >= 0
689
+ @astrtvar[1] = slovov1 #1.p nechame jak je
690
+ @astrtvar[4] = @v1[flgv1][2]
691
+ end
692
+ end
693
+
694
+ def self.xedeten(txt2)
695
+ xdetenerv = ""
696
+ for xdetenei in 0...txt2.length-1 do
697
+ if txt2[xdetenei] == "d" && (txt2[xdetenei + 1] == "ě" || txt2[xdetenei + 1]=="i")
698
+ xdetenerv += "ď"
699
+ if txt2[xdetenei + 1] == "ě"
700
+ xdetenerv += "e"
701
+ xdetenei += 1
702
+ end
703
+ elsif txt2[xdetenei] == "t" && (txt2[xdetenei + 1] == "ě" || txt2[xdetenei + 1]=="i")
704
+ xdetenerv += "ť"
705
+ if txt2[xdetenei + 1] == "ě"
706
+ xdetenerv += "e"
707
+ xdetenei += 1
708
+ end
709
+ elsif txt2[xdetenei] == "n" && (txt2[xdetenei + 1] == "ě" || txt2[xdetenei + 1]=="i")
710
+ xdetenerv += "ň";
711
+ if txt2[xdetenei + 1] == "ě"
712
+ xdetenerv += "e"
713
+ xdetenei += 1
714
+ end
715
+ else
716
+ xdetenerv += txt2[xdetenei]
717
+ end
718
+ end
719
+
720
+ xdetenei += 1
721
+ if xdetenei == txt2.length-1
722
+ xdetenerv += txt2[xdetenei]
723
+ end
724
+
725
+ return xdetenerv
726
+ end
727
+
728
+ def self.xdetene(txt2)
729
+ xdetenerv = ""
730
+ for xdetenei in 0...txt2.length-1 do
731
+ if txt2[xdetenei] == "ď" && (txt2[xdetenei + 1] == "e" || txt2[xdetenei + 1] == "i" || txt2[xdetenei + 1] == "í")
732
+ xdetenerv += "d"
733
+ if txt2[xdetenei + 1] == "e"
734
+ xdetenerv += "ě"
735
+ xdetenei += 1
736
+ end
737
+ elsif txt2[xdetenei] == "ť" && (txt2[xdetenei + 1] == "e" || txt2[xdetenei + 1] == "i" || txt2[xdetenei + 1] == "í")
738
+ xdetenerv += "t"
739
+ if txt2[xdetenei + 1] == "e"
740
+ xdetenerv += "ě"
741
+ xdetenei += 1
742
+ end
743
+ elsif txt2[xdetenei] == "ň" && (txt2[xdetenei + 1] == "e" || txt2[xdetenei + 1] == "i" || txt2[xdetenei + 1] == "í")
744
+ xdetenerv += "n"
745
+ if txt2[xdetenei + 1] == "e"
746
+ xdetenerv += "ě"
747
+ xdetenei += 1
748
+ end
749
+ else
750
+ xdetenerv += txt2[xdetenei]
751
+ end
752
+ end
753
+
754
+ xdetenei += 1
755
+ if xdetenei == txt2.length - 1
756
+ xdetenerv += txt2[xdetenei]
757
+ end
758
+
759
+ return xdetenerv
760
+ end
761
+
762
+ def self.stdndx(slovo)
763
+ for iii in 0...@vzor.length
764
+ # filtrace rodu
765
+ if @prefrod[0] != "0" && @prefrod[0] != @vzor[iii][0][0]
766
+ next
767
+ end
768
+
769
+ if isshoda(@vzor[iii][1],slovo) >= 0
770
+ break
771
+ end
772
+ end
773
+
774
+ if iii >= @vzor.length
775
+ return -1
776
+ end
777
+
778
+ return iii
779
+ end
780
+
781
+ def self.sklstd(slovo,ii)
782
+
783
+ if ii < 0 || ii > @vzor.length
784
+ @astrtvar[0] = "!!!???"
785
+ end
786
+
787
+ # - seznam nedoresenych slov
788
+ for jj in 0...@v0.length
789
+ if isshoda(@v0[jj], slovo) >= 0
790
+ str = "Seznam výjimek [" + jj + "]. "
791
+ puts str + "Lituji, toto slovo zatím neumím správně vyskloňovat."
792
+ return
793
+ end
794
+ end
795
+
796
+ # nastaveni rodu
797
+ @astrtvar[0] = @vzor[ii][0]
798
+
799
+ # vlastni sklonovani
800
+ for jj in 1...15 do
801
+ @astrtvar[jj] = sklon(jj,ii,slovo)
802
+ end
803
+
804
+ # - seznam nepresneho sklonovani
805
+ for jj in 0...@v3.length do
806
+ if isshoda(@v3[jj], slovo) >= 0
807
+ puts "Pozor, v některých pádech nemusí být skloňování tohoto slova přesné."
808
+ return
809
+ end
810
+ end
811
+ end
812
+
813
+ def self.sklon(npad,vzndx,txt)
814
+ if vzndx >= @vzor.length || vzndx < 0
815
+ return "???"
816
+ end
817
+
818
+ txt3 = xedeten(txt)
819
+ kndx = isshoda(@vzor[vzndx][1], txt3)
820
+ if kndx < 0 || npad < 1 || npad > 14 #8-14 je pro plural
821
+ return "???"
822
+ end
823
+
824
+ if @vzor[vzndx][npad] == "?"
825
+ return "?"
826
+ end
827
+
828
+ if !@isdbgmode & npad == 1 # 1. pad nemenime
829
+ rv = xdetene(txt3)
830
+ else
831
+ rv = txt3[0...kndx] + '-' + cmpfrm(@vzor[vzndx][npad])
832
+ end
833
+
834
+ if @isdbgmode #preskoceni filtrovani
835
+ return rv
836
+ end
837
+
838
+ ndx1 = rv.index("-")
839
+ ndx1 = rv.length if ndx1.nil?
840
+
841
+ ndx2 = rv.index("/")
842
+ ndx2 = rv.length if ndx2.nil?
843
+
844
+ zivotne = 1
845
+ if ndx1 != rv.length && ndx2 != rv.length
846
+ if zivotne
847
+ # "text-xxx/yyy" -> "textyyy"
848
+ rv = rv[0...ndx1] + rv[(ndx2 + 1)..-1]
849
+ else
850
+ # "text-xxx/yyy" -> "text-xxx"
851
+ rv = rv[0...ndx2]
852
+ end
853
+ end
854
+
855
+ # vypusteni pomocnych znaku
856
+ txt3 = ""
857
+ for nnn in 0...rv.length do
858
+ if !(rv[nnn] == '-' || rv[nnn] == '/')
859
+ txt3 += rv[nnn]
860
+ end
861
+ end
862
+
863
+ rv = xdetene(txt3)
864
+
865
+ return rv
866
+ # return LeftStr( kndx, txt ) + vzor[vzndx][nPad];
867
+ end
868
+
869
+ def self.cmpfrm(txt)
870
+ cmpfrmrv = ""
871
+ for cmpfrmi in 0...txt.length do
872
+ if txt[cmpfrmi] == "0"
873
+ cmpfrmrv += @acmpreg[0]
874
+ elsif txt[cmpfrmi] == "1"
875
+ cmpfrmrv += @acmpreg[1]
876
+ elsif txt[cmpfrmi] == "2"
877
+ cmpfrmrv += @acmpreg[2]
878
+ else
879
+ cmpfrmrv += txt[cmpfrmi]
880
+ end
881
+ end
882
+ return cmpfrmrv
883
+ end
884
+
885
+ end
data/readme.md ADDED
@@ -0,0 +1,37 @@
1
+ # Czech declensions
2
+
3
+ Czech declensions were rewritten from Javascript from original site [pteryx.net](http://pteryx.net/sklonovani.html)
4
+ by author Pavel Sedlak under LGPL 2.1. Actual version is 0.96b.
5
+
6
+ ## Installation
7
+
8
+ ### From Git
9
+
10
+ You can check out the latest source from git:
11
+
12
+ git clone git://github.com/dominikform/czech_declensions.git
13
+
14
+ ### From RubyGems
15
+
16
+ Installation from RubyGems
17
+
18
+ gem install czech_declensions
19
+
20
+ Alternatively, add the following to your Gemfile
21
+
22
+ gem 'czech_declensions', :git => 'git://github.com/dominikform/czech_declensions.git'
23
+
24
+ ## Usage
25
+
26
+ slovo = sklonovani("moje slovo",2) => "mojeho slova"
27
+
28
+ ## Contributing
29
+
30
+ The source code is hosted at [GitHub](http://github.com/dominikform/czech_declensions), and can be fetched using:
31
+
32
+ git clone git://github.com/dominikform/czech_declensions.git
33
+
34
+ Please don't touch the CHANGELOG in your pull requests, we'll add the appropriate CHANGELOG entries
35
+ at release time.
36
+
37
+ [![Build Status](https://secure.travis-ci.org/Shopify/active_merchant.png)](http://travis-ci.org/Shopify/active_merchant)
metadata ADDED
@@ -0,0 +1,52 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: czech_declensions
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Dominik Formánek
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-27 00:00:00.000000000Z
13
+ dependencies: []
14
+ description: Tool for czech declensions
15
+ email:
16
+ - dominik.formanek@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - Gemfile
23
+ - Rakefile
24
+ - czech_declensions.gemspec
25
+ - lib/czech_declensions.rb
26
+ - lib/czech_declensions/version.rb
27
+ - readme.md
28
+ homepage: ''
29
+ licenses: []
30
+ post_install_message:
31
+ rdoc_options: []
32
+ require_paths:
33
+ - lib
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ requirements: []
47
+ rubyforge_project: czech_declensions
48
+ rubygems_version: 1.8.8
49
+ signing_key:
50
+ specification_version: 3
51
+ summary: Czech declensions
52
+ test_files: []