czech_declensions 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []