yaqut 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: 9791228219fe9b7ca8509a9ff4e84bf71de90a3f
4
+ data.tar.gz: 5da42e4e501e065877f8c1eb6117d4f99fa36be3
5
+ SHA512:
6
+ metadata.gz: 88913d8fd8308df267ad61a7697f1e59fa8c03f5826888daa12e2eb5ea0d5187b7e7cd703711b8a056a37812852a6fccdf6e8c6f30dadc1afe5ad4f63befd6cf
7
+ data.tar.gz: 8cfcbd9dc0355011f8e45d7a801d6aced1d40fd260f27373210f11ad10dc17e922128875c887f8a692a9f96eb347626bc077e0aa5becddb8307380ff5d6c66a0
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+ trunk/
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in yaqut.gemspec
4
+ gemspec
5
+
6
+ gem 'rspec'
7
+ gem 'unidecoder', :group => :development
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Collin Fair
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,51 @@
1
+ # Yaqut
2
+
3
+ Look up language codes & names.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'yaqut'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install yaqut
20
+
21
+ ## Usage
22
+
23
+ Searching is case-insensitive, but otherwise requires an exact match.
24
+
25
+ ```ruby
26
+ require "yaqut"
27
+
28
+ [...]
29
+
30
+ # Search all fields
31
+ Yaqut.search("english")
32
+ # or, just the language's English name
33
+ Yaqut.search(english_name: "french")
34
+ # or, just the language's native name, in native script
35
+ Yaqut.search(native_name: "العربية")
36
+ # or, just the language's native name, in ASCII
37
+ Yaqut.search(transliterated_native_name: "francais")
38
+ # or, just the ISO 639-1 code
39
+ Yaqut.search(iso_639_1: "el")
40
+
41
+ ```
42
+
43
+ All calls, if successful, return a `Yaqut::Language` instance from which you can ready any of the search fields (`english_name`, `iso_639_1`, etc.)
44
+
45
+ ## Contributing
46
+
47
+ 1. Fork it ( https://github.com/cpfair/yaqut/fork )
48
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
49
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
50
+ 4. Push to the branch (`git push origin my-new-feature`)
51
+ 5. Create a new Pull Request
@@ -0,0 +1,43 @@
1
+ require "bundler"
2
+ require "bundler/gem_tasks"
3
+ require "rexml/document"
4
+ require "yaqut/language"
5
+ require "yaml"
6
+ require "unidecoder"
7
+
8
+ Bundler.require
9
+
10
+ task :default => [:spec]
11
+ require 'rspec/core/rake_task'
12
+ desc "Run specs"
13
+ RSpec::Core::RakeTask.new do |t|
14
+ t.rspec_opts = %w(-fd --color)
15
+ end
16
+
17
+ desc "Rebuild the language table - supply path to trunk of unicode CLDR as an argument"
18
+ task :rebuild do
19
+ Bundler.require(:default, :development)
20
+
21
+ cldr_trunk = ARGV.last
22
+ data_files = Dir["#{cldr_trunk}/common/main/*.xml"].select { |path| !File.basename(path, ".xml").include?("_") }
23
+ languages = {}
24
+ data_files.each { |data_file|
25
+ inspecting_language = File.basename(data_file, ".xml")
26
+ doc = REXML::Document.new(File.read(data_file))
27
+ doc.elements.each("ldml/localeDisplayNames/languages/language") do |lang|
28
+ code_2 = lang.attribute("type").to_s
29
+ if code_2.length == 2
30
+ language = languages[code_2] ||= Yaqut::Language.new()
31
+ language.iso_639_1 = code_2
32
+ if inspecting_language == 'en'
33
+ language.english_name = lang.text.downcase
34
+ end
35
+ if inspecting_language == code_2
36
+ language.native_name = lang.text.downcase
37
+ language.transliterated_native_name = language.native_name.to_ascii
38
+ end
39
+ end
40
+ end
41
+ }
42
+ File.open('config/languages.yml', 'w') {|f| f.write languages.values.to_yaml }
43
+ end
@@ -0,0 +1,805 @@
1
+ ---
2
+ - !ruby/object:Yaqut::Language
3
+ iso_639_1: aa
4
+ native_name: qafar
5
+ transliterated_native_name: qafar
6
+ english_name: afar
7
+ - !ruby/object:Yaqut::Language
8
+ iso_639_1: ab
9
+ english_name: abkhazian
10
+ - !ruby/object:Yaqut::Language
11
+ iso_639_1: af
12
+ native_name: afrikaans
13
+ transliterated_native_name: afrikaans
14
+ english_name: afrikaans
15
+ - !ruby/object:Yaqut::Language
16
+ iso_639_1: ak
17
+ native_name: akan
18
+ transliterated_native_name: akan
19
+ english_name: akan
20
+ - !ruby/object:Yaqut::Language
21
+ iso_639_1: am
22
+ native_name: "አማርኛ"
23
+ transliterated_native_name: "'amaarenyaa"
24
+ english_name: amharic
25
+ - !ruby/object:Yaqut::Language
26
+ iso_639_1: ar
27
+ native_name: "العربية"
28
+ transliterated_native_name: l`rby@
29
+ english_name: arabic
30
+ - !ruby/object:Yaqut::Language
31
+ iso_639_1: as
32
+ native_name: "অসমীয়া"
33
+ transliterated_native_name: asmiiy'aa
34
+ english_name: assamese
35
+ - !ruby/object:Yaqut::Language
36
+ iso_639_1: ay
37
+ english_name: aymara
38
+ - !ruby/object:Yaqut::Language
39
+ iso_639_1: az
40
+ native_name: azəri
41
+ transliterated_native_name: az@ri
42
+ english_name: azeri
43
+ - !ruby/object:Yaqut::Language
44
+ iso_639_1: ba
45
+ english_name: bashkir
46
+ - !ruby/object:Yaqut::Language
47
+ iso_639_1: be
48
+ native_name: "беларуская"
49
+ transliterated_native_name: bielaruskaia
50
+ english_name: belarusian
51
+ - !ruby/object:Yaqut::Language
52
+ iso_639_1: bg
53
+ native_name: "български"
54
+ transliterated_native_name: blgharski
55
+ english_name: bulgarian
56
+ - !ruby/object:Yaqut::Language
57
+ iso_639_1: bm
58
+ native_name: bamanakan
59
+ transliterated_native_name: bamanakan
60
+ english_name: bambara
61
+ - !ruby/object:Yaqut::Language
62
+ iso_639_1: bn
63
+ native_name: "বাংলা"
64
+ transliterated_native_name: baaNlaa
65
+ english_name: bengali
66
+ - !ruby/object:Yaqut::Language
67
+ iso_639_1: bo
68
+ native_name: "བོད་སྐད་"
69
+ transliterated_native_name: bod[nil]skd[nil]
70
+ english_name: tibetan
71
+ - !ruby/object:Yaqut::Language
72
+ iso_639_1: br
73
+ native_name: brezhoneg
74
+ transliterated_native_name: brezhoneg
75
+ english_name: breton
76
+ - !ruby/object:Yaqut::Language
77
+ iso_639_1: bs
78
+ native_name: bosanski
79
+ transliterated_native_name: bosanski
80
+ english_name: bosnian
81
+ - !ruby/object:Yaqut::Language
82
+ iso_639_1: ca
83
+ native_name: català
84
+ transliterated_native_name: catala
85
+ english_name: catalan
86
+ - !ruby/object:Yaqut::Language
87
+ iso_639_1: co
88
+ english_name: corsican
89
+ - !ruby/object:Yaqut::Language
90
+ iso_639_1: cs
91
+ native_name: "čeština"
92
+ transliterated_native_name: cestina
93
+ english_name: czech
94
+ - !ruby/object:Yaqut::Language
95
+ iso_639_1: cu
96
+ english_name: church slavic
97
+ - !ruby/object:Yaqut::Language
98
+ iso_639_1: cy
99
+ native_name: cymraeg
100
+ transliterated_native_name: cymraeg
101
+ english_name: welsh
102
+ - !ruby/object:Yaqut::Language
103
+ iso_639_1: da
104
+ native_name: dansk
105
+ transliterated_native_name: dansk
106
+ english_name: danish
107
+ - !ruby/object:Yaqut::Language
108
+ iso_639_1: de
109
+ native_name: deutsch
110
+ transliterated_native_name: deutsch
111
+ english_name: german
112
+ - !ruby/object:Yaqut::Language
113
+ iso_639_1: dv
114
+ english_name: divehi
115
+ - !ruby/object:Yaqut::Language
116
+ iso_639_1: dz
117
+ native_name: "རྫོང་ཁ"
118
+ transliterated_native_name: rdzong[nil]kh
119
+ english_name: dzongkha
120
+ - !ruby/object:Yaqut::Language
121
+ iso_639_1: ee
122
+ native_name: eʋegbe
123
+ transliterated_native_name: evegbe
124
+ english_name: ewe
125
+ - !ruby/object:Yaqut::Language
126
+ iso_639_1: el
127
+ native_name: "Ελληνικά"
128
+ transliterated_native_name: Ellenika
129
+ english_name: greek
130
+ - !ruby/object:Yaqut::Language
131
+ iso_639_1: en
132
+ native_name: english
133
+ transliterated_native_name: english
134
+ english_name: english
135
+ - !ruby/object:Yaqut::Language
136
+ iso_639_1: eo
137
+ native_name: esperanto
138
+ transliterated_native_name: esperanto
139
+ english_name: esperanto
140
+ - !ruby/object:Yaqut::Language
141
+ iso_639_1: es
142
+ native_name: español
143
+ transliterated_native_name: espanol
144
+ english_name: spanish
145
+ - !ruby/object:Yaqut::Language
146
+ iso_639_1: et
147
+ native_name: eesti
148
+ transliterated_native_name: eesti
149
+ english_name: estonian
150
+ - !ruby/object:Yaqut::Language
151
+ iso_639_1: eu
152
+ native_name: euskara
153
+ transliterated_native_name: euskara
154
+ english_name: basque
155
+ - !ruby/object:Yaqut::Language
156
+ iso_639_1: fa
157
+ native_name: "فارسی"
158
+ transliterated_native_name: frsy
159
+ english_name: persian
160
+ - !ruby/object:Yaqut::Language
161
+ iso_639_1: fi
162
+ native_name: suomi
163
+ transliterated_native_name: suomi
164
+ english_name: finnish
165
+ - !ruby/object:Yaqut::Language
166
+ iso_639_1: fj
167
+ english_name: fijian
168
+ - !ruby/object:Yaqut::Language
169
+ iso_639_1: fo
170
+ native_name: føroyskt
171
+ transliterated_native_name: foroyskt
172
+ english_name: faroese
173
+ - !ruby/object:Yaqut::Language
174
+ iso_639_1: fr
175
+ native_name: français
176
+ transliterated_native_name: francais
177
+ english_name: french
178
+ - !ruby/object:Yaqut::Language
179
+ iso_639_1: fy
180
+ native_name: west-frysk
181
+ transliterated_native_name: west-frysk
182
+ english_name: western frisian
183
+ - !ruby/object:Yaqut::Language
184
+ iso_639_1: ga
185
+ native_name: gaeilge
186
+ transliterated_native_name: gaeilge
187
+ english_name: irish
188
+ - !ruby/object:Yaqut::Language
189
+ iso_639_1: gd
190
+ native_name: gàidhlig
191
+ transliterated_native_name: gaidhlig
192
+ english_name: scottish gaelic
193
+ - !ruby/object:Yaqut::Language
194
+ iso_639_1: gl
195
+ native_name: galego
196
+ transliterated_native_name: galego
197
+ english_name: galician
198
+ - !ruby/object:Yaqut::Language
199
+ iso_639_1: gn
200
+ english_name: guarani
201
+ - !ruby/object:Yaqut::Language
202
+ iso_639_1: gu
203
+ native_name: "ગુજરાતી"
204
+ transliterated_native_name: gujraatii
205
+ english_name: gujarati
206
+ - !ruby/object:Yaqut::Language
207
+ iso_639_1: gv
208
+ native_name: gaelg
209
+ transliterated_native_name: gaelg
210
+ english_name: manx
211
+ - !ruby/object:Yaqut::Language
212
+ iso_639_1: ha
213
+ native_name: hausa
214
+ transliterated_native_name: hausa
215
+ english_name: hausa
216
+ - !ruby/object:Yaqut::Language
217
+ iso_639_1: he
218
+ native_name: "עברית"
219
+ transliterated_native_name: "`bryt"
220
+ english_name: hebrew
221
+ - !ruby/object:Yaqut::Language
222
+ iso_639_1: hi
223
+ native_name: "हिंदी"
224
+ transliterated_native_name: hiNdii
225
+ english_name: hindi
226
+ - !ruby/object:Yaqut::Language
227
+ iso_639_1: hr
228
+ native_name: hrvatski
229
+ transliterated_native_name: hrvatski
230
+ english_name: croatian
231
+ - !ruby/object:Yaqut::Language
232
+ iso_639_1: ht
233
+ english_name: haitian
234
+ - !ruby/object:Yaqut::Language
235
+ iso_639_1: hu
236
+ native_name: magyar
237
+ transliterated_native_name: magyar
238
+ english_name: hungarian
239
+ - !ruby/object:Yaqut::Language
240
+ iso_639_1: hy
241
+ native_name: "հայերեն"
242
+ transliterated_native_name: hayeren
243
+ english_name: armenian
244
+ - !ruby/object:Yaqut::Language
245
+ iso_639_1: ia
246
+ native_name: interlingua
247
+ transliterated_native_name: interlingua
248
+ english_name: interlingua
249
+ - !ruby/object:Yaqut::Language
250
+ iso_639_1: id
251
+ native_name: bahasa indonesia
252
+ transliterated_native_name: bahasa indonesia
253
+ english_name: indonesian
254
+ - !ruby/object:Yaqut::Language
255
+ iso_639_1: ie
256
+ english_name: interlingue
257
+ - !ruby/object:Yaqut::Language
258
+ iso_639_1: ig
259
+ native_name: igbo
260
+ transliterated_native_name: igbo
261
+ english_name: igbo
262
+ - !ruby/object:Yaqut::Language
263
+ iso_639_1: ii
264
+ native_name: "ꆈꌠꉙ"
265
+ transliterated_native_name: nuosuhxop
266
+ english_name: sichuan yi
267
+ - !ruby/object:Yaqut::Language
268
+ iso_639_1: is
269
+ native_name: "íslenska"
270
+ transliterated_native_name: islenska
271
+ english_name: icelandic
272
+ - !ruby/object:Yaqut::Language
273
+ iso_639_1: it
274
+ native_name: italiano
275
+ transliterated_native_name: italiano
276
+ english_name: italian
277
+ - !ruby/object:Yaqut::Language
278
+ iso_639_1: iu
279
+ english_name: inuktitut
280
+ - !ruby/object:Yaqut::Language
281
+ iso_639_1: ja
282
+ native_name: "日本語"
283
+ transliterated_native_name: 'Ri Ben Yu '
284
+ english_name: japanese
285
+ - !ruby/object:Yaqut::Language
286
+ iso_639_1: jv
287
+ english_name: javanese
288
+ - !ruby/object:Yaqut::Language
289
+ iso_639_1: ka
290
+ native_name: "ქართული"
291
+ transliterated_native_name: k`art`uli
292
+ english_name: georgian
293
+ - !ruby/object:Yaqut::Language
294
+ iso_639_1: kg
295
+ english_name: kongo
296
+ - !ruby/object:Yaqut::Language
297
+ iso_639_1: ki
298
+ native_name: gikuyu
299
+ transliterated_native_name: gikuyu
300
+ english_name: kikuyu
301
+ - !ruby/object:Yaqut::Language
302
+ iso_639_1: kk
303
+ native_name: "қазақ тілі"
304
+ transliterated_native_name: k'azak' tili
305
+ english_name: kazakh
306
+ - !ruby/object:Yaqut::Language
307
+ iso_639_1: kl
308
+ native_name: kalaallisut
309
+ transliterated_native_name: kalaallisut
310
+ english_name: kalaallisut
311
+ - !ruby/object:Yaqut::Language
312
+ iso_639_1: km
313
+ native_name: "ខ្មែរ"
314
+ transliterated_native_name: khmaer
315
+ english_name: khmer
316
+ - !ruby/object:Yaqut::Language
317
+ iso_639_1: kn
318
+ native_name: "ಕನ್ನಡ"
319
+ transliterated_native_name: knndd
320
+ english_name: kannada
321
+ - !ruby/object:Yaqut::Language
322
+ iso_639_1: ko
323
+ native_name: "한국어"
324
+ transliterated_native_name: hangugeo
325
+ english_name: korean
326
+ - !ruby/object:Yaqut::Language
327
+ iso_639_1: ks
328
+ native_name: "کٲشُر"
329
+ transliterated_native_name: kh'shur
330
+ english_name: kashmiri
331
+ - !ruby/object:Yaqut::Language
332
+ iso_639_1: ku
333
+ english_name: kurdish
334
+ - !ruby/object:Yaqut::Language
335
+ iso_639_1: kw
336
+ native_name: kernewek
337
+ transliterated_native_name: kernewek
338
+ english_name: cornish
339
+ - !ruby/object:Yaqut::Language
340
+ iso_639_1: ky
341
+ native_name: "кыргызча"
342
+ transliterated_native_name: kyrghyzcha
343
+ english_name: kirghiz
344
+ - !ruby/object:Yaqut::Language
345
+ iso_639_1: la
346
+ english_name: latin
347
+ - !ruby/object:Yaqut::Language
348
+ iso_639_1: lb
349
+ native_name: lëtzebuergesch
350
+ transliterated_native_name: letzebuergesch
351
+ english_name: luxembourgish
352
+ - !ruby/object:Yaqut::Language
353
+ iso_639_1: lg
354
+ native_name: luganda
355
+ transliterated_native_name: luganda
356
+ english_name: ganda
357
+ - !ruby/object:Yaqut::Language
358
+ iso_639_1: li
359
+ english_name: limburgish
360
+ - !ruby/object:Yaqut::Language
361
+ iso_639_1: ln
362
+ native_name: lingála
363
+ transliterated_native_name: lingala
364
+ english_name: lingala
365
+ - !ruby/object:Yaqut::Language
366
+ iso_639_1: lo
367
+ native_name: "ລາວ"
368
+ transliterated_native_name: laaw
369
+ english_name: lao
370
+ - !ruby/object:Yaqut::Language
371
+ iso_639_1: lt
372
+ native_name: lietuvių
373
+ transliterated_native_name: lietuviu
374
+ english_name: lithuanian
375
+ - !ruby/object:Yaqut::Language
376
+ iso_639_1: lu
377
+ native_name: tshiluba
378
+ transliterated_native_name: tshiluba
379
+ english_name: luba-katanga
380
+ - !ruby/object:Yaqut::Language
381
+ iso_639_1: lv
382
+ native_name: latviešu
383
+ transliterated_native_name: latviesu
384
+ english_name: latvian
385
+ - !ruby/object:Yaqut::Language
386
+ iso_639_1: mg
387
+ native_name: malagasy
388
+ transliterated_native_name: malagasy
389
+ english_name: malagasy
390
+ - !ruby/object:Yaqut::Language
391
+ iso_639_1: mi
392
+ english_name: maori
393
+ - !ruby/object:Yaqut::Language
394
+ iso_639_1: mk
395
+ native_name: "македонски"
396
+ transliterated_native_name: makiedonski
397
+ english_name: macedonian
398
+ - !ruby/object:Yaqut::Language
399
+ iso_639_1: ml
400
+ native_name: "മലയാളം"
401
+ transliterated_native_name: mlyaallN
402
+ english_name: malayalam
403
+ - !ruby/object:Yaqut::Language
404
+ iso_639_1: mn
405
+ native_name: "монгол"
406
+ transliterated_native_name: monghol
407
+ english_name: mongolian
408
+ - !ruby/object:Yaqut::Language
409
+ iso_639_1: mr
410
+ native_name: "मराठी"
411
+ transliterated_native_name: mraatthii
412
+ english_name: marathi
413
+ - !ruby/object:Yaqut::Language
414
+ iso_639_1: ms
415
+ native_name: bahasa melayu
416
+ transliterated_native_name: bahasa melayu
417
+ english_name: malay
418
+ - !ruby/object:Yaqut::Language
419
+ iso_639_1: mt
420
+ native_name: malti
421
+ transliterated_native_name: malti
422
+ english_name: maltese
423
+ - !ruby/object:Yaqut::Language
424
+ iso_639_1: my
425
+ native_name: "ဗမာ"
426
+ transliterated_native_name: bmaa
427
+ english_name: burmese
428
+ - !ruby/object:Yaqut::Language
429
+ iso_639_1: nb
430
+ native_name: norsk bokmål
431
+ transliterated_native_name: norsk bokmal
432
+ english_name: norwegian bokmål
433
+ - !ruby/object:Yaqut::Language
434
+ iso_639_1: nd
435
+ native_name: isindebele
436
+ transliterated_native_name: isindebele
437
+ english_name: north ndebele
438
+ - !ruby/object:Yaqut::Language
439
+ iso_639_1: ne
440
+ native_name: "नेपाली"
441
+ transliterated_native_name: nepaalii
442
+ english_name: nepali
443
+ - !ruby/object:Yaqut::Language
444
+ iso_639_1: nl
445
+ native_name: nederlands
446
+ transliterated_native_name: nederlands
447
+ english_name: dutch
448
+ - !ruby/object:Yaqut::Language
449
+ iso_639_1: nn
450
+ native_name: nynorsk
451
+ transliterated_native_name: nynorsk
452
+ english_name: norwegian nynorsk
453
+ - !ruby/object:Yaqut::Language
454
+ iso_639_1: 'no'
455
+ english_name: norwegian
456
+ - !ruby/object:Yaqut::Language
457
+ iso_639_1: nr
458
+ native_name: isindebele
459
+ transliterated_native_name: isindebele
460
+ english_name: south ndebele
461
+ - !ruby/object:Yaqut::Language
462
+ iso_639_1: ny
463
+ english_name: nyanja
464
+ - !ruby/object:Yaqut::Language
465
+ iso_639_1: oc
466
+ english_name: occitan
467
+ - !ruby/object:Yaqut::Language
468
+ iso_639_1: om
469
+ native_name: oromoo
470
+ transliterated_native_name: oromoo
471
+ english_name: oromo
472
+ - !ruby/object:Yaqut::Language
473
+ iso_639_1: or
474
+ native_name: "ଓଡ଼ିଆ"
475
+ transliterated_native_name: odd'iaa
476
+ english_name: oriya
477
+ - !ruby/object:Yaqut::Language
478
+ iso_639_1: os
479
+ native_name: "ирон"
480
+ transliterated_native_name: iron
481
+ english_name: ossetic
482
+ - !ruby/object:Yaqut::Language
483
+ iso_639_1: pa
484
+ native_name: "ਪੰਜਾਬੀ"
485
+ transliterated_native_name: pNjaabii
486
+ english_name: punjabi
487
+ - !ruby/object:Yaqut::Language
488
+ iso_639_1: pl
489
+ native_name: polski
490
+ transliterated_native_name: polski
491
+ english_name: polish
492
+ - !ruby/object:Yaqut::Language
493
+ iso_639_1: ps
494
+ native_name: "پښتو"
495
+ transliterated_native_name: pStw
496
+ english_name: pushto
497
+ - !ruby/object:Yaqut::Language
498
+ iso_639_1: pt
499
+ native_name: português
500
+ transliterated_native_name: portugues
501
+ english_name: portuguese
502
+ - !ruby/object:Yaqut::Language
503
+ iso_639_1: qu
504
+ native_name: runasimi
505
+ transliterated_native_name: runasimi
506
+ english_name: quechua
507
+ - !ruby/object:Yaqut::Language
508
+ iso_639_1: rm
509
+ native_name: rumantsch
510
+ transliterated_native_name: rumantsch
511
+ english_name: romansh
512
+ - !ruby/object:Yaqut::Language
513
+ iso_639_1: rn
514
+ native_name: ikirundi
515
+ transliterated_native_name: ikirundi
516
+ english_name: rundi
517
+ - !ruby/object:Yaqut::Language
518
+ iso_639_1: ro
519
+ native_name: română
520
+ transliterated_native_name: romana
521
+ english_name: romanian
522
+ - !ruby/object:Yaqut::Language
523
+ iso_639_1: ru
524
+ native_name: "русский"
525
+ transliterated_native_name: russkii
526
+ english_name: russian
527
+ - !ruby/object:Yaqut::Language
528
+ iso_639_1: rw
529
+ native_name: kinyarwanda
530
+ transliterated_native_name: kinyarwanda
531
+ english_name: kinyarwanda
532
+ - !ruby/object:Yaqut::Language
533
+ iso_639_1: sa
534
+ english_name: sanskrit
535
+ - !ruby/object:Yaqut::Language
536
+ iso_639_1: sd
537
+ english_name: sindhi
538
+ - !ruby/object:Yaqut::Language
539
+ iso_639_1: se
540
+ native_name: davvisámegiella
541
+ transliterated_native_name: davvisamegiella
542
+ english_name: northern sami
543
+ - !ruby/object:Yaqut::Language
544
+ iso_639_1: sg
545
+ native_name: sängö
546
+ transliterated_native_name: sango
547
+ english_name: sango
548
+ - !ruby/object:Yaqut::Language
549
+ iso_639_1: sh
550
+ english_name: serbo-croatian
551
+ - !ruby/object:Yaqut::Language
552
+ iso_639_1: si
553
+ native_name: "සිංහල"
554
+ transliterated_native_name: siNhl
555
+ english_name: sinhala
556
+ - !ruby/object:Yaqut::Language
557
+ iso_639_1: sk
558
+ native_name: slovenčina
559
+ transliterated_native_name: slovencina
560
+ english_name: slovak
561
+ - !ruby/object:Yaqut::Language
562
+ iso_639_1: sl
563
+ native_name: slovenščina
564
+ transliterated_native_name: slovenscina
565
+ english_name: slovenian
566
+ - !ruby/object:Yaqut::Language
567
+ iso_639_1: sm
568
+ english_name: samoan
569
+ - !ruby/object:Yaqut::Language
570
+ iso_639_1: sn
571
+ native_name: chishona
572
+ transliterated_native_name: chishona
573
+ english_name: shona
574
+ - !ruby/object:Yaqut::Language
575
+ iso_639_1: so
576
+ native_name: soomaali
577
+ transliterated_native_name: soomaali
578
+ english_name: somali
579
+ - !ruby/object:Yaqut::Language
580
+ iso_639_1: sq
581
+ native_name: shqip
582
+ transliterated_native_name: shqip
583
+ english_name: albanian
584
+ - !ruby/object:Yaqut::Language
585
+ iso_639_1: sr
586
+ native_name: "српски"
587
+ transliterated_native_name: srpski
588
+ english_name: serbian
589
+ - !ruby/object:Yaqut::Language
590
+ iso_639_1: ss
591
+ native_name: siswati
592
+ transliterated_native_name: siswati
593
+ english_name: swati
594
+ - !ruby/object:Yaqut::Language
595
+ iso_639_1: st
596
+ english_name: southern sotho
597
+ - !ruby/object:Yaqut::Language
598
+ iso_639_1: su
599
+ english_name: sundanese
600
+ - !ruby/object:Yaqut::Language
601
+ iso_639_1: sv
602
+ native_name: svenska
603
+ transliterated_native_name: svenska
604
+ english_name: swedish
605
+ - !ruby/object:Yaqut::Language
606
+ iso_639_1: sw
607
+ native_name: kiswahili
608
+ transliterated_native_name: kiswahili
609
+ english_name: swahili
610
+ - !ruby/object:Yaqut::Language
611
+ iso_639_1: ta
612
+ native_name: "தமிழ்"
613
+ transliterated_native_name: tmilll
614
+ english_name: tamil
615
+ - !ruby/object:Yaqut::Language
616
+ iso_639_1: te
617
+ native_name: "తెలుగు"
618
+ transliterated_native_name: telugu
619
+ english_name: telugu
620
+ - !ruby/object:Yaqut::Language
621
+ iso_639_1: tg
622
+ english_name: tajik
623
+ - !ruby/object:Yaqut::Language
624
+ iso_639_1: th
625
+ native_name: "ไทย"
626
+ transliterated_native_name: aithy
627
+ english_name: thai
628
+ - !ruby/object:Yaqut::Language
629
+ iso_639_1: ti
630
+ native_name: "ትግርኛ"
631
+ transliterated_native_name: tegerenyaa
632
+ english_name: tigrinya
633
+ - !ruby/object:Yaqut::Language
634
+ iso_639_1: tk
635
+ english_name: turkmen
636
+ - !ruby/object:Yaqut::Language
637
+ iso_639_1: tn
638
+ native_name: setswana
639
+ transliterated_native_name: setswana
640
+ english_name: tswana
641
+ - !ruby/object:Yaqut::Language
642
+ iso_639_1: to
643
+ native_name: lea fakatonga
644
+ transliterated_native_name: lea fakatonga
645
+ english_name: tongan
646
+ - !ruby/object:Yaqut::Language
647
+ iso_639_1: tr
648
+ native_name: türkçe
649
+ transliterated_native_name: turkce
650
+ english_name: turkish
651
+ - !ruby/object:Yaqut::Language
652
+ iso_639_1: ts
653
+ native_name: xitsonga
654
+ transliterated_native_name: xitsonga
655
+ english_name: tsonga
656
+ - !ruby/object:Yaqut::Language
657
+ iso_639_1: tt
658
+ english_name: tatar
659
+ - !ruby/object:Yaqut::Language
660
+ iso_639_1: tw
661
+ english_name: twi
662
+ - !ruby/object:Yaqut::Language
663
+ iso_639_1: ty
664
+ english_name: tahitian
665
+ - !ruby/object:Yaqut::Language
666
+ iso_639_1: ug
667
+ native_name: "ئۇيغۇرچە"
668
+ transliterated_native_name: y'uyGurchae
669
+ english_name: uighur
670
+ - !ruby/object:Yaqut::Language
671
+ iso_639_1: uk
672
+ native_name: "українська"
673
+ transliterated_native_name: ukrayins'ka
674
+ english_name: ukrainian
675
+ - !ruby/object:Yaqut::Language
676
+ iso_639_1: ur
677
+ native_name: "اردو"
678
+ transliterated_native_name: rdw
679
+ english_name: urdu
680
+ - !ruby/object:Yaqut::Language
681
+ iso_639_1: uz
682
+ native_name: oʻzbekcha
683
+ transliterated_native_name: o`zbekcha
684
+ english_name: uzbek
685
+ - !ruby/object:Yaqut::Language
686
+ iso_639_1: ve
687
+ native_name: tshivenḓa
688
+ transliterated_native_name: tshivenda
689
+ english_name: venda
690
+ - !ruby/object:Yaqut::Language
691
+ iso_639_1: vi
692
+ native_name: tiếng việt
693
+ transliterated_native_name: tieng viet
694
+ english_name: vietnamese
695
+ - !ruby/object:Yaqut::Language
696
+ iso_639_1: wo
697
+ english_name: wolof
698
+ - !ruby/object:Yaqut::Language
699
+ iso_639_1: xh
700
+ english_name: xhosa
701
+ - !ruby/object:Yaqut::Language
702
+ iso_639_1: yi
703
+ native_name: "ייִדיש"
704
+ transliterated_native_name: yyidysh
705
+ english_name: yiddish
706
+ - !ruby/object:Yaqut::Language
707
+ iso_639_1: yo
708
+ native_name: "Èdè yorùbá"
709
+ transliterated_native_name: Ede yoruba
710
+ english_name: yoruba
711
+ - !ruby/object:Yaqut::Language
712
+ iso_639_1: zh
713
+ native_name: "中文"
714
+ transliterated_native_name: 'Zhong Wen '
715
+ english_name: chinese
716
+ - !ruby/object:Yaqut::Language
717
+ iso_639_1: zu
718
+ native_name: isizulu
719
+ transliterated_native_name: isizulu
720
+ english_name: zulu
721
+ - !ruby/object:Yaqut::Language
722
+ iso_639_1: bi
723
+ english_name: bislama
724
+ - !ruby/object:Yaqut::Language
725
+ iso_639_1: ik
726
+ english_name: inupiaq
727
+ - !ruby/object:Yaqut::Language
728
+ iso_639_1: na
729
+ english_name: nauru
730
+ - !ruby/object:Yaqut::Language
731
+ iso_639_1: tl
732
+ english_name: tagalog
733
+ - !ruby/object:Yaqut::Language
734
+ iso_639_1: vo
735
+ native_name: volapük
736
+ transliterated_native_name: volapuk
737
+ english_name: volapük
738
+ - !ruby/object:Yaqut::Language
739
+ iso_639_1: za
740
+ english_name: zhuang
741
+ - !ruby/object:Yaqut::Language
742
+ iso_639_1: ae
743
+ english_name: avestan
744
+ - !ruby/object:Yaqut::Language
745
+ iso_639_1: an
746
+ english_name: aragonese
747
+ - !ruby/object:Yaqut::Language
748
+ iso_639_1: av
749
+ english_name: avaric
750
+ - !ruby/object:Yaqut::Language
751
+ iso_639_1: ce
752
+ english_name: chechen
753
+ - !ruby/object:Yaqut::Language
754
+ iso_639_1: ch
755
+ english_name: chamorro
756
+ - !ruby/object:Yaqut::Language
757
+ iso_639_1: cr
758
+ english_name: cree
759
+ - !ruby/object:Yaqut::Language
760
+ iso_639_1: cv
761
+ english_name: chuvash
762
+ - !ruby/object:Yaqut::Language
763
+ iso_639_1: ff
764
+ native_name: pulaar
765
+ transliterated_native_name: pulaar
766
+ english_name: fulah
767
+ - !ruby/object:Yaqut::Language
768
+ iso_639_1: ho
769
+ english_name: hiri motu
770
+ - !ruby/object:Yaqut::Language
771
+ iso_639_1: hz
772
+ english_name: herero
773
+ - !ruby/object:Yaqut::Language
774
+ iso_639_1: io
775
+ english_name: ido
776
+ - !ruby/object:Yaqut::Language
777
+ iso_639_1: kj
778
+ english_name: kuanyama
779
+ - !ruby/object:Yaqut::Language
780
+ iso_639_1: kr
781
+ english_name: kanuri
782
+ - !ruby/object:Yaqut::Language
783
+ iso_639_1: kv
784
+ english_name: komi
785
+ - !ruby/object:Yaqut::Language
786
+ iso_639_1: mh
787
+ english_name: marshallese
788
+ - !ruby/object:Yaqut::Language
789
+ iso_639_1: ng
790
+ english_name: ndonga
791
+ - !ruby/object:Yaqut::Language
792
+ iso_639_1: nv
793
+ english_name: navajo
794
+ - !ruby/object:Yaqut::Language
795
+ iso_639_1: oj
796
+ english_name: ojibwa
797
+ - !ruby/object:Yaqut::Language
798
+ iso_639_1: pi
799
+ english_name: pali
800
+ - !ruby/object:Yaqut::Language
801
+ iso_639_1: sc
802
+ english_name: sardinian
803
+ - !ruby/object:Yaqut::Language
804
+ iso_639_1: wa
805
+ english_name: walloon
@@ -0,0 +1,24 @@
1
+ require "yaqut/version"
2
+ require "yaqut/language"
3
+ require "yaml"
4
+
5
+ module Yaqut
6
+ ALL_FIELDS = [:english_name, :native_name, :transliterated_native_name, :iso_639_1]
7
+
8
+ def self.search(any_field=nil, **search_params)
9
+ raise "Specify at least one search parameter" if any_field.nil? && (search_params.none? || search_params.all? { |param| param.nil? })
10
+ raise "Cannot specify specific fields and a general search term" if any_field && search_params.any?
11
+ # Case changes can be expensive, only do them once
12
+ any_field = any_field.downcase if any_field
13
+ search_params.each{ |key, str| search_params[key] = str.downcase }
14
+ # Not particularly efficient, but there are only ~200
15
+ database.find { |language|
16
+ (!any_field.nil? && ALL_FIELDS.any? { |field| language.send(field) == any_field }) ||
17
+ (search_params.any? && search_params.all? { |field, param| language.send(field) == param })
18
+ }
19
+ end
20
+
21
+ def self.database
22
+ @database ||= YAML::load_file("config/languages.yml")
23
+ end
24
+ end
@@ -0,0 +1,7 @@
1
+ require 'unidecoder'
2
+
3
+ module Yaqut
4
+ class Language
5
+ attr_accessor :english_name, :native_name, :iso_639_1, :transliterated_native_name
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module Yaqut
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,45 @@
1
+ require 'yaqut'
2
+
3
+ describe Yaqut do
4
+ describe "#search" do
5
+ context "invalid inputs" do
6
+ context "no parameters" do
7
+ it "fails" do
8
+ expect{ Yaqut.search }.to raise_exception
9
+ end
10
+ end
11
+
12
+ context "too many parameters" do
13
+ it "fails" do
14
+ expect{ Yaqut.search("test", english_name: "test") }.to raise_exception
15
+ end
16
+ end
17
+ end
18
+
19
+ context "valid inputs" do
20
+ it "handles multifield search" do
21
+ expect(Yaqut.search("english").iso_639_1).to eq("en")
22
+ end
23
+
24
+ it "isn't overeager" do
25
+ expect(Yaqut.search(iso_639_1: "english")).to be_nil
26
+ end
27
+
28
+ it "handles specific search" do
29
+ expect(Yaqut.search(iso_639_1: "en").iso_639_1).to eq("en")
30
+ end
31
+
32
+ it "handles native-language search" do
33
+ expect(Yaqut.search("français").iso_639_1).to eq("fr")
34
+ end
35
+
36
+ it "handles transliterated native-language search" do
37
+ expect(Yaqut.search("francais").iso_639_1).to eq("fr")
38
+ end
39
+
40
+ it "confuses people who thought native_name was already transliterated" do
41
+ expect(Yaqut.search(native_name: "francais")).to be_nil
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,50 @@
1
+ UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
2
+
3
+ Unicode Data Files include all data files under the directories
4
+ http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
5
+ http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF
6
+ online code charts under the directory http://www.unicode.org/Public/.
7
+ Software includes any source code published in the Unicode Standard or under
8
+ the directories http://www.unicode.org/Public/,
9
+ http://www.unicode.org/reports/, and http://www.unicode.org/cldr/data/.
10
+
11
+ NOTICE TO USER: Carefully read the following legal agreement. BY
12
+ DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
13
+ ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
14
+ AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF
15
+ YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA
16
+ FILES OR SOFTWARE.
17
+
18
+ COPYRIGHT AND PERMISSION NOTICE
19
+
20
+ Copyright © 1991-2014 Unicode, Inc. All rights reserved. Distributed under
21
+ the Terms of Use in http://www.unicode.org/copyright.html.
22
+
23
+ Permission is hereby granted, free of charge, to any person obtaining a
24
+ copy of the Unicode data files and any associated documentation (the "Data
25
+ Files") or Unicode software and any associated documentation (the "Software")
26
+ to deal in the Data Files or Software without restriction, including without
27
+ limitation the rights to use, copy, modify, merge, publish, distribute, and/or
28
+ sell copies of the Data Files or Software, and to permit persons to whom the
29
+ Data Files or Software are furnished to do so, provided that (a) the above
30
+ copyright notice(s) and this permission notice appear with all copies of the
31
+ Data Files or Software, (b) both the above copyright notice(s) and this
32
+ permission notice appear in associated documentation, and (c) there is clear
33
+ notice in each modified Data File or in the Software as well as in the
34
+ documentation associated with the Data File(s) or Software that the data or
35
+ software has been modified.
36
+
37
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
38
+ KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
40
+ PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
41
+ THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
42
+ DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
43
+ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
44
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE
45
+ DATA FILES OR SOFTWARE.
46
+
47
+ Except as contained in this notice, the name of a copyright holder shall
48
+ not be used in advertising or otherwise to promote the sale, use or other
49
+ dealings in these Data Files or Software without prior written authorization
50
+ of the copyright holder.
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'yaqut/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "yaqut"
8
+ spec.version = Yaqut::VERSION
9
+ spec.authors = ["Collin"]
10
+ spec.email = ["collin@remind101.com"]
11
+ spec.summary = "Look up language names and ISO codes."
12
+ spec.description = "A lightweight database of language names and ISO codes."
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yaqut
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Collin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: A lightweight database of language names and ISO codes.
42
+ email:
43
+ - collin@remind101.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - Gemfile
50
+ - LICENSE.txt
51
+ - README.md
52
+ - Rakefile
53
+ - config/languages.yml
54
+ - lib/yaqut.rb
55
+ - lib/yaqut/language.rb
56
+ - lib/yaqut/version.rb
57
+ - spec/yaqut_spec.rb
58
+ - unicode-license.txt
59
+ - yaqut.gemspec
60
+ homepage: ''
61
+ licenses:
62
+ - MIT
63
+ metadata: {}
64
+ post_install_message:
65
+ rdoc_options: []
66
+ require_paths:
67
+ - lib
68
+ required_ruby_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ requirements: []
79
+ rubyforge_project:
80
+ rubygems_version: 2.2.2
81
+ signing_key:
82
+ specification_version: 4
83
+ summary: Look up language names and ISO codes.
84
+ test_files:
85
+ - spec/yaqut_spec.rb