sundawg_country_codes 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest ADDED
@@ -0,0 +1,6 @@
1
+ README
2
+ Rakefile
3
+ lib/countries.yml
4
+ lib/country_iso_translater.rb
5
+ test/country_iso_translater_test.rb
6
+ Manifest
data/README ADDED
@@ -0,0 +1,48 @@
1
+ ABOUT
2
+ -----
3
+ This project is a Ruby gem to manage ISO 3166 country names and their corresponding alpha-2 and alpha-3 codes.
4
+
5
+ TEST
6
+ ----
7
+ Tests can be executed by running:
8
+
9
+ rake test
10
+
11
+ SAMPLE USAGE
12
+ ------------
13
+ To translate from a country's name to their ISO Alpha-2 code:
14
+
15
+ SunDawg::CountryIsoTranslater.translate_iso3166_name_to_alpha2("United States")
16
+
17
+ To translate from a country's name to their ISO Alpha-3 code:
18
+
19
+ SunDawg::CountryIsoTranslater.translate_iso3166_name_to_alpha3("Egypt")
20
+
21
+ To translate from a country's ISO Alpha-2 code to country name:
22
+
23
+ SunDawg::CountryIsoTranslater.translate_iso3166_alpha2_to_name("US")
24
+
25
+ To translate form a country's ISO Alpha-3 code to country name:
26
+
27
+ SunDawg::CountryIsoTranslater.translate_iso3166_alpha3_to_name("ESP")
28
+
29
+ DATA
30
+ ----
31
+ All country code and names are stored in a countries.yml file that can be changed as you need. The latest codes and country names are derived from:
32
+
33
+ http://en.wikipedia.org/wiki/ISO_3166-1
34
+
35
+ GEM INSTALL
36
+ -----------
37
+ This gem is hosted gemcutter.org. To install the gem, you should install gemcutter as so:
38
+
39
+ sudo gem install gemcutter
40
+ gem tumble
41
+
42
+ This will add gemcutter to your gem repository for downloading the country_codes gem.
43
+
44
+ RAILS INSTALL
45
+ -------------
46
+ To include this gem in your Rails project, add the following to your config/environment.rb:
47
+
48
+ config.gem 'sundawg_country_codes', :lib => 'country_iso_translater'
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ # Rakefile
2
+ require 'rubygems'
3
+ require 'rake'
4
+ require 'echoe'
5
+
6
+ Echoe.new('sundawg_country_codes', '0.0.1') do |p|
7
+ p.description = "Manage ISO 3166 Country Names and Codes."
8
+ p.url = "http://github.com/SunDawg/country_codes"
9
+ p.author = "Christopher Sun"
10
+ p.email = "christopher.sun@gmail.com"
11
+ p.ignore_pattern = ["tmp/*", "script/*"]
12
+ p.development_dependencies = []
13
+ end
data/lib/countries.yml ADDED
@@ -0,0 +1,984 @@
1
+ US:
2
+ alpha2: US
3
+ name: United States
4
+ alpha3: USA
5
+ AF:
6
+ alpha2: AF
7
+ name: Afghanistan
8
+ alpha3: AFG
9
+ AX:
10
+ alpha2: AX
11
+ name: Aland Islands
12
+ alpha3: ALA
13
+ AS:
14
+ alpha2: AS
15
+ name: American Samoa
16
+ alpha3: ASM
17
+ AQ:
18
+ alpha2: AQ
19
+ name: Antarctica
20
+ alpha3: ATA
21
+ AG:
22
+ alpha2: AG
23
+ name: Antigua And Barbuda
24
+ alpha3: ATG
25
+ AL:
26
+ alpha2: AL
27
+ name: Albania
28
+ alpha3: ALB
29
+ DZ:
30
+ alpha2: DZ
31
+ name: Algeria
32
+ alpha3: DZA
33
+ AD:
34
+ alpha2: AD
35
+ name: Andorra
36
+ alpha3: AND
37
+ AO:
38
+ alpha2: AO
39
+ name: Angola
40
+ alpha3: AGO
41
+ AI:
42
+ alpha2: AI
43
+ name: Anguilla
44
+ alpha3: AIA
45
+ AR:
46
+ alpha2: AR
47
+ name: Argentina
48
+ alpha3: ARG
49
+ AM:
50
+ alpha2: AM
51
+ name: Armenia
52
+ alpha3: ARM
53
+ AW:
54
+ alpha2: AW
55
+ name: Aruba
56
+ alpha3: ABW
57
+ AU:
58
+ alpha2: AU
59
+ name: Australia
60
+ alpha3: AUS
61
+ AT:
62
+ alpha2: AT
63
+ name: Austria
64
+ alpha3: AUT
65
+ AZ:
66
+ alpha2: AZ
67
+ name: Azerbaijan
68
+ alpha3: AZE
69
+ BD:
70
+ alpha2: BD
71
+ name: Bangladesh
72
+ alpha3: BGD
73
+ BY:
74
+ alpha2: BY
75
+ name: Belarus
76
+ alpha3: BLR
77
+ BS:
78
+ alpha2: BS
79
+ name: Bahamas
80
+ alpha3: BHS
81
+ BH:
82
+ alpha2: BH
83
+ name: Bahrain
84
+ alpha3: BHR
85
+ BB:
86
+ alpha2: BB
87
+ name: Barbados
88
+ alpha3: BRB
89
+ BE:
90
+ alpha2: BE
91
+ name: Belgium
92
+ alpha3: BEL
93
+ BZ:
94
+ alpha2: BZ
95
+ name: Belize
96
+ alpha3: BLZ
97
+ BJ:
98
+ alpha2: BJ
99
+ name: Benin
100
+ alpha3: BEN
101
+ BM:
102
+ alpha2: BM
103
+ name: Bermuda
104
+ alpha3: BMU
105
+ BT:
106
+ alpha2: BT
107
+ name: Bhutan
108
+ alpha3: BTN
109
+ BO:
110
+ alpha2: BO
111
+ name: Bolivia
112
+ alpha3: BOL
113
+ BA:
114
+ alpha2: BA
115
+ name: Bosnia and Herzegovina
116
+ alpha3: BIH
117
+ BV:
118
+ alpha2: BV
119
+ name: Bouvet Island
120
+ alpha3: BVT
121
+ BW:
122
+ alpha2: BW
123
+ name: Botswana
124
+ alpha3: BWA
125
+ IO:
126
+ alpha2: IO
127
+ name: British Indian Ocean Territory
128
+ alpha3: IOT
129
+ IR:
130
+ alpha2: IR
131
+ name: Iran, Islamic Republic of
132
+ alpha3: IRN
133
+ IQ:
134
+ alpha2: IQ
135
+ name: Iraq
136
+ alpha3: IRQ
137
+ IM:
138
+ alpha2: IM
139
+ name: Isle of Man
140
+ alpha3: IMN
141
+ JE:
142
+ alpha2: JE
143
+ name: Jersey
144
+ alpha3: JEY
145
+ KP:
146
+ alpha2: KP
147
+ name: Korea, Democratic People's Republic of
148
+ alpha3: PRK
149
+ BR:
150
+ alpha2: BR
151
+ name: Brazil
152
+ alpha3: BRA
153
+ VG:
154
+ alpha2: VG
155
+ name: Virgin Islands, British
156
+ alpha3: VGB
157
+ VI:
158
+ alpha2: VI
159
+ name: Virgin Islands, U.S.
160
+ alpha3: VIR
161
+ BN:
162
+ alpha2: BN
163
+ name: Brunei Darussalam
164
+ alpha3: BRN
165
+ BG:
166
+ alpha2: BG
167
+ name: Bulgaria
168
+ alpha3: BGR
169
+ BF:
170
+ alpha2: BF
171
+ name: Burkina Faso
172
+ alpha3: BFA
173
+ BI:
174
+ alpha2: BI
175
+ name: Burundi
176
+ alpha3: BDI
177
+ KH:
178
+ alpha2: KH
179
+ name: Cambodia
180
+ alpha3: KHM
181
+ CA:
182
+ alpha2: CA
183
+ name: Canada
184
+ alpha3: CAN
185
+ CV:
186
+ alpha2: CV
187
+ name: Cape Verde
188
+ alpha3: CPV
189
+ CM:
190
+ alpha2: CM
191
+ name: Cameroon
192
+ alpha3: CMR
193
+ CF:
194
+ alpha2: CF
195
+ name: Central African Republic
196
+ alpha3: CAF
197
+ CX:
198
+ alpha2: CX
199
+ name: Christmas Island
200
+ alpha3: CXR
201
+ CC:
202
+ alpha2: CC
203
+ name: Cocos (Keeling) Islands
204
+ alpha3: CCK
205
+ KY:
206
+ alpha2: KY
207
+ name: Cayman Islands
208
+ alpha3: CYM
209
+ TD:
210
+ alpha2: TD
211
+ name: Chad
212
+ alpha3: TCD
213
+ CL:
214
+ alpha2: CL
215
+ name: Chile
216
+ alpha3: CHL
217
+ CN:
218
+ alpha2: CN
219
+ name: China
220
+ alpha3: CHN
221
+ CO:
222
+ alpha2: CO
223
+ name: Colombia
224
+ alpha3: COL
225
+ KM:
226
+ alpha2: KM
227
+ name: Comoros
228
+ alpha3: COM
229
+ CK:
230
+ alpha2: CK
231
+ name: Cook Islands
232
+ alpha3: COK
233
+ CR:
234
+ alpha2: CR
235
+ name: Costa Rica
236
+ alpha3: CRI
237
+ HR:
238
+ alpha2: HR
239
+ name: Croatia
240
+ alpha3: HRV
241
+ CY:
242
+ alpha2: CY
243
+ name: Cyprus
244
+ alpha3: CYP
245
+ CZ:
246
+ alpha2: CZ
247
+ name: Czech Republic
248
+ alpha3: CZE
249
+ CD:
250
+ alpha2: CD
251
+ name: Democratic Republic of the Congo
252
+ alpha3: COD
253
+ DK:
254
+ alpha2: DK
255
+ name: Denmark
256
+ alpha3: DNK
257
+ DJ:
258
+ alpha2: DJ
259
+ name: Djibouti
260
+ alpha3: DJI
261
+ DM:
262
+ alpha2: DM
263
+ name: Dominica
264
+ alpha3: DMA
265
+ DO:
266
+ alpha2: DO
267
+ name: Dominican Republic
268
+ alpha3: DOM
269
+ EC:
270
+ alpha2: EC
271
+ name: Ecuador
272
+ alpha3: ECU
273
+ SV:
274
+ alpha2: SV
275
+ name: El Salvador
276
+ alpha3: SLV
277
+ ER:
278
+ alpha2: ER
279
+ name: Eritrea
280
+ alpha3: ERI
281
+ EE:
282
+ alpha2: EE
283
+ name: Estonia
284
+ alpha3: EST
285
+ ET:
286
+ alpha2: ET
287
+ name: Ethiopia
288
+ alpha3: ETH
289
+ FK:
290
+ alpha2: FK
291
+ name: Falkland Islands (Malvinas)
292
+ alpha3: FLK
293
+ TF:
294
+ alpha2: TF
295
+ name: French Southern Territories
296
+ alpha3: ATF
297
+ FO:
298
+ alpha2: FO
299
+ name: Faroe Islands
300
+ alpha3: FRO
301
+ FM:
302
+ alpha2: FM
303
+ name: Micronesia, Federated States of
304
+ alpha3: FSM
305
+ MD:
306
+ alpha2: MD
307
+ name: Moldova, Republic of
308
+ alpha3: MDA
309
+ MC:
310
+ alpha2: MC
311
+ name: Monaco
312
+ alpha3: MCO
313
+ ME:
314
+ alpha2: ME
315
+ name: Montenegro
316
+ alpha3: MNE
317
+ MM:
318
+ alpha2: MM
319
+ name: Myanmar
320
+ alpha3: MMR
321
+ NG:
322
+ alpha2: NG
323
+ name: Nigeria
324
+ alpha3: NGA
325
+ MP:
326
+ alpha2: MP
327
+ name: Northern Mariana Islands
328
+ alpha3: MNP
329
+ PK:
330
+ alpha2: PK
331
+ name: Pakistan
332
+ alpha3: PAK
333
+ PS:
334
+ alpha2: PS
335
+ name: Palestinian Territory, Occupied
336
+ alpha3: PSE
337
+ PY:
338
+ alpha2: PY
339
+ name: Paraguay
340
+ alpha3: PRY
341
+ FJ:
342
+ alpha2: FJ
343
+ name: Fiji
344
+ alpha3: FJI
345
+ FI:
346
+ alpha2: FI
347
+ name: Finland
348
+ alpha3: FIN
349
+ FR:
350
+ alpha2: FR
351
+ name: France
352
+ alpha3: FRA
353
+ GF:
354
+ alpha2: GF
355
+ name: French Guiana
356
+ alpha3: GUF
357
+ PF:
358
+ alpha2: PF
359
+ name: French Polynesia
360
+ alpha3: PYF
361
+ GA:
362
+ alpha2: GA
363
+ name: Gabon
364
+ alpha3: GAB
365
+ GE:
366
+ alpha2: GE
367
+ name: Georgia
368
+ alpha3: GEO
369
+ GH:
370
+ alpha2: GH
371
+ name: Ghana
372
+ alpha3: GHA
373
+ GU:
374
+ alpha2: GU
375
+ name: Guam
376
+ alpha3: GUM
377
+ GM:
378
+ alpha2: GM
379
+ name: Gambia
380
+ alpha3: GMB
381
+ GG:
382
+ alpha2: GG
383
+ name: Guernsey
384
+ alpha3: GGY
385
+ DE:
386
+ alpha2: DE
387
+ name: Germany
388
+ alpha3: DEU
389
+ GI:
390
+ alpha2: GI
391
+ name: Gibraltar
392
+ alpha3: GIB
393
+ GR:
394
+ alpha2: GR
395
+ name: Greece
396
+ alpha3: GRC
397
+ GL:
398
+ alpha2: GL
399
+ name: Greenland
400
+ alpha3: GRL
401
+ GD:
402
+ alpha2: GD
403
+ name: Grenada
404
+ alpha3: GRD
405
+ GP:
406
+ alpha2: GP
407
+ name: Guadeloupe
408
+ alpha3: GLP
409
+ GT:
410
+ alpha2: GT
411
+ name: Guatemala
412
+ alpha3: GTM
413
+ GN:
414
+ alpha2: GN
415
+ name: Guinea
416
+ alpha3: GIN
417
+ GW:
418
+ alpha2: GW
419
+ name: Guinea-Bissau
420
+ alpha3: GNB
421
+ GY:
422
+ alpha2: GY
423
+ name: Guyana
424
+ alpha3: GUY
425
+ HT:
426
+ alpha2: HT
427
+ name: Haiti
428
+ alpha3: HTI
429
+ HM:
430
+ alpha2: HM
431
+ name: Heard and McDonald Islands
432
+ alpha3: HMD
433
+ HN:
434
+ alpha2: HN
435
+ name: Honduras
436
+ alpha3: HND
437
+ HK:
438
+ alpha2: HK
439
+ name: Hong Kong
440
+ alpha3: HKG
441
+ HU:
442
+ alpha2: HU
443
+ name: Hungary
444
+ alpha3: HUN
445
+ IS:
446
+ alpha2: IS
447
+ name: Iceland
448
+ alpha3: ISL
449
+ IN:
450
+ alpha2: IN
451
+ name: India
452
+ alpha3: IND
453
+ ID:
454
+ alpha2: ID
455
+ name: Indonesia
456
+ alpha3: IDN
457
+ IE:
458
+ alpha2: IE
459
+ name: Ireland
460
+ alpha3: IRL
461
+ IL:
462
+ alpha2: IL
463
+ name: Israel
464
+ alpha3: ISR
465
+ IT:
466
+ alpha2: IT
467
+ name: Italy
468
+ alpha3: ITA
469
+ JM:
470
+ alpha2: JM
471
+ name: Jamaica
472
+ alpha3: JAM
473
+ JP:
474
+ alpha2: JP
475
+ name: Japan
476
+ alpha3: JPN
477
+ JO:
478
+ alpha2: JO
479
+ name: Jordan
480
+ alpha3: JOR
481
+ KZ:
482
+ alpha2: KZ
483
+ name: Kazakhstan
484
+ alpha3: KAZ
485
+ KE:
486
+ alpha2: KE
487
+ name: Kenya
488
+ alpha3: KEN
489
+ KI:
490
+ alpha2: KI
491
+ name: Kiribati
492
+ alpha3: KIR
493
+ KW:
494
+ alpha2: KW
495
+ name: Kuwait
496
+ alpha3: KWT
497
+ KG:
498
+ alpha2: KG
499
+ name: Kyrgyzstan
500
+ alpha3: KGZ
501
+ MO:
502
+ alpha2: MO
503
+ name: Macao
504
+ alpha3: MAC
505
+ MK:
506
+ alpha2: MK
507
+ name: Macedonia
508
+ alpha3: MKD
509
+ LA:
510
+ alpha2: LA
511
+ name: Lao People's Democratic Republic
512
+ alpha3: LAO
513
+ LY:
514
+ alpha2: LY
515
+ name: Libyan Arab Jamahiriya
516
+ alpha3: LBY
517
+ LB:
518
+ alpha2: LB
519
+ name: Lebanon
520
+ alpha3: LBN
521
+ LR:
522
+ alpha2: LR
523
+ name: Liberia
524
+ alpha3: LBR
525
+ LV:
526
+ alpha2: LV
527
+ name: Latvia
528
+ alpha3: LVA
529
+ LS:
530
+ alpha2: LS
531
+ name: Lesotho
532
+ alpha3: LSO
533
+ LI:
534
+ alpha2: LI
535
+ name: Liechtenstein
536
+ alpha3: LIE
537
+ LT:
538
+ alpha2: LT
539
+ name: Lithuania
540
+ alpha3: LTU
541
+ LU:
542
+ alpha2: LU
543
+ name: Luxembourg
544
+ alpha3: LUX
545
+ MG:
546
+ alpha2: MG
547
+ name: Madagascar
548
+ alpha3: MDG
549
+ MW:
550
+ alpha2: MW
551
+ name: Malawi
552
+ alpha3: MWI
553
+ MY:
554
+ alpha2: MY
555
+ name: Malaysia
556
+ alpha3: MYS
557
+ MV:
558
+ alpha2: MV
559
+ name: Maldives
560
+ alpha3: MDV
561
+ ML:
562
+ alpha2: ML
563
+ name: Mali
564
+ alpha3: MLI
565
+ MT:
566
+ alpha2: MT
567
+ name: Malta
568
+ alpha3: MLT
569
+ MH:
570
+ alpha2: MH
571
+ name: Marshall Islands
572
+ alpha3: MHL
573
+ MQ:
574
+ alpha2: MQ
575
+ name: Martinique
576
+ alpha3: MTQ
577
+ MR:
578
+ alpha2: MR
579
+ name: Mauritania
580
+ alpha3: MRT
581
+ MU:
582
+ alpha2: MU
583
+ name: Mauritius
584
+ alpha3: MUS
585
+ YT:
586
+ alpha2: YT
587
+ name: Mayotte
588
+ alpha3: MYT
589
+ MX:
590
+ alpha2: MX
591
+ name: Mexico
592
+ alpha3: MEX
593
+ MN:
594
+ alpha2: MN
595
+ name: Mongolia
596
+ alpha3: MNG
597
+ MS:
598
+ alpha2: MS
599
+ name: Montserrat
600
+ alpha3: MSR
601
+ MA:
602
+ alpha2: MA
603
+ name: Morocco
604
+ alpha3: MAR
605
+ MZ:
606
+ alpha2: MZ
607
+ name: Mozambique
608
+ alpha3: MOZ
609
+ NA:
610
+ alpha2: NA
611
+ name: Namibia
612
+ alpha3: NAM
613
+ NR:
614
+ alpha2: NR
615
+ name: Nauru
616
+ alpha3: NRU
617
+ NP:
618
+ alpha2: NP
619
+ name: Nepal
620
+ alpha3: NPL
621
+ NL:
622
+ alpha2: NL
623
+ name: Netherlands
624
+ alpha3: NLD
625
+ AN:
626
+ alpha2: AN
627
+ name: Netherlands Antilles
628
+ alpha3: ANT
629
+ NC:
630
+ alpha2: NC
631
+ name: New Caledonia
632
+ alpha3: NCL
633
+ NZ:
634
+ alpha2: NZ
635
+ name: New Zealand
636
+ alpha3: NZL
637
+ NI:
638
+ alpha2: NI
639
+ name: Nicaragua
640
+ alpha3: NIC
641
+ NE:
642
+ alpha2: NE
643
+ name: Niger
644
+ alpha3: NER
645
+ NU:
646
+ alpha2: NU
647
+ name: Niue
648
+ alpha3: NIU
649
+ NF:
650
+ alpha2: NF
651
+ name: Norfolk Island
652
+ alpha3: NFK
653
+ NO:
654
+ alpha2: NO
655
+ name: Norway
656
+ alpha3: NOR
657
+ OM:
658
+ alpha2: OM
659
+ name: Oman
660
+ alpha3: OMN
661
+ PW:
662
+ alpha2: PW
663
+ name: Palau
664
+ alpha3: PLW
665
+ PA:
666
+ alpha2: PA
667
+ name: Panama
668
+ alpha3: PAN
669
+ PG:
670
+ alpha2: PG
671
+ name: Papua New Guinea
672
+ alpha3: PNG
673
+ PE:
674
+ alpha2: PE
675
+ name: Peru
676
+ alpha3: PER
677
+ PH:
678
+ alpha2: PH
679
+ name: Philippines
680
+ alpha3: PHL
681
+ PN:
682
+ alpha2: PN
683
+ name: Pitcairn
684
+ alpha3: PCN
685
+ PR:
686
+ alpha2: PR
687
+ name: Puerto Rico
688
+ alpha3: PRI
689
+ PL:
690
+ alpha2: PL
691
+ name: Poland
692
+ alpha3: POL
693
+ PT:
694
+ alpha2: PT
695
+ name: Portugal
696
+ alpha3: PRT
697
+ QA:
698
+ alpha2: QA
699
+ name: Qatar
700
+ alpha3: QAT
701
+ CG:
702
+ alpha2: CG
703
+ name: Congo
704
+ alpha3: COG
705
+ CD:
706
+ alpha2: CD
707
+ name: Congo, the Democratic Republic of the
708
+ alpha3: COD
709
+ CI:
710
+ alpha2: CI
711
+ name: Cote d'Ivoire
712
+ alpha3: CIV
713
+ EG:
714
+ alpha2: EG
715
+ name: Egypt
716
+ alpha3: EGY
717
+ GQ:
718
+ alpha2: GQ
719
+ name: Equatorial Guinea
720
+ alpha3: GNQ
721
+ CU:
722
+ alpha2: CU
723
+ name: Cuba
724
+ alpha3: CUB
725
+ RE:
726
+ alpha2: RE
727
+ name: Reunion
728
+ alpha3: REU
729
+ RO:
730
+ alpha2: RO
731
+ name: Romania
732
+ alpha3: ROU
733
+ RU:
734
+ alpha2: RU
735
+ name: Russian Federation
736
+ alpha3: RUS
737
+ BL:
738
+ alpha2: BL
739
+ name: Saint Barthelemy
740
+ alpha3: BLM
741
+ RW:
742
+ alpha2: RW
743
+ name: Rwanda
744
+ alpha3: RWA
745
+ VC:
746
+ alpha2: VC
747
+ name: Saint Vincent and the Grenadines
748
+ alpha3: VCT
749
+ WS:
750
+ alpha2: WS
751
+ name: Samoa
752
+ alpha3: WSM
753
+ SM:
754
+ alpha2: SM
755
+ name: San Marino
756
+ alpha3: SMR
757
+ ST:
758
+ alpha2: ST
759
+ name: Sao Tome and Principe
760
+ alpha3: STP
761
+ RS:
762
+ alpha2: RS
763
+ name: Serbia
764
+ alpha3: SRB
765
+ GS:
766
+ alpha2: GS
767
+ name: South Georgia and the South Sandwich Islands
768
+ alpha3: SGS
769
+ SD:
770
+ alpha2: SD
771
+ name: Sudan
772
+ alpha3: SDN
773
+ SA:
774
+ alpha2: SA
775
+ name: Saudi Arabia
776
+ alpha3: SAU
777
+ SN:
778
+ alpha2: SN
779
+ name: Senegal
780
+ alpha3: SEN
781
+ SC:
782
+ alpha2: SC
783
+ name: Seychelles
784
+ alpha3: SYC
785
+ SL:
786
+ alpha2: SL
787
+ name: Sierra Leone
788
+ alpha3: SLE
789
+ SG:
790
+ alpha2: SG
791
+ name: Singapore
792
+ alpha3: SGP
793
+ SK:
794
+ alpha2: SK
795
+ name: Slovakia
796
+ alpha3: SVK
797
+ SI:
798
+ alpha2: SI
799
+ name: Slovenia
800
+ alpha3: SVN
801
+ SB:
802
+ alpha2: SB
803
+ name: Solomon Islands
804
+ alpha3: SLB
805
+ SO:
806
+ alpha2: SO
807
+ name: Somalia
808
+ alpha3: SOM
809
+ ZA:
810
+ alpha2: ZA
811
+ name: South Africa
812
+ alpha3: ZAF
813
+ KR:
814
+ alpha2: KR
815
+ name: Korea, Republic of
816
+ alpha3: KOR
817
+ ES:
818
+ alpha2: ES
819
+ name: Spain
820
+ alpha3: ESP
821
+ LK:
822
+ alpha2: LK
823
+ name: Sri Lanka
824
+ alpha3: LKA
825
+ SH:
826
+ alpha2: SH
827
+ name: Saint Helena
828
+ alpha3: SHN
829
+ KN:
830
+ alpha2: KN
831
+ name: Saint Kitts and Nevis
832
+ alpha3: KNA
833
+ LC:
834
+ alpha2: LC
835
+ name: Saint Lucia
836
+ alpha3: LCA
837
+ PM:
838
+ alpha2: PM
839
+ name: Saint Pierre and Miquelon
840
+ alpha3: SPM
841
+ SR:
842
+ alpha2: SR
843
+ name: Suriname
844
+ alpha3: SUR
845
+ SJ:
846
+ alpha2: SJ
847
+ name: Svalbard and Jan Mayen
848
+ alpha3: SJM
849
+ SY:
850
+ alpha2: SY
851
+ name: Syrian Arab Republic
852
+ alpha3: SYR
853
+ SZ:
854
+ alpha2: SZ
855
+ name: Swaziland
856
+ alpha3: SWZ
857
+ SE:
858
+ alpha2: SE
859
+ name: Sweden
860
+ alpha3: SWE
861
+ CH:
862
+ alpha2: CH
863
+ name: Switzerland
864
+ alpha3: CHE
865
+ TW:
866
+ alpha2: TW
867
+ name: Taiwan
868
+ alpha3: TWN
869
+ TJ:
870
+ alpha2: TJ
871
+ name: Tajikistan
872
+ alpha3: TJK
873
+ TZ:
874
+ alpha2: TZ
875
+ name: Tanzania, United Republic of
876
+ alpha3: TZA
877
+ TL:
878
+ alpha2: TL
879
+ name: Timor-Leste
880
+ alpha3: TLS
881
+ TK:
882
+ alpha2: TK
883
+ name: Tokelau
884
+ alpha3: TKL
885
+ UM:
886
+ alpha2: UM
887
+ name: United States Minor Outlying Islands
888
+ alpha3: UMI
889
+ UZ:
890
+ alpha2: UZ
891
+ name: Uzbekistan
892
+ alpha3: UZB
893
+ TH:
894
+ alpha2: TH
895
+ name: Thailand
896
+ alpha3: THA
897
+ TG:
898
+ alpha2: TG
899
+ name: Togo
900
+ alpha3: TGO
901
+ TO:
902
+ alpha2: TO
903
+ name: Tonga
904
+ alpha3: TON
905
+ TT:
906
+ alpha2: TT
907
+ name: Trinidad and Tobago
908
+ alpha3: TTO
909
+ TN:
910
+ alpha2: TN
911
+ name: Tunisia
912
+ alpha3: TUN
913
+ TR:
914
+ alpha2: TR
915
+ name: Turkey
916
+ alpha3: TUR
917
+ TM:
918
+ alpha2: TM
919
+ name: Turkmenistan
920
+ alpha3: TKM
921
+ TC:
922
+ alpha2: TC
923
+ name: Turks and Caicos Islands
924
+ alpha3: TCA
925
+ TV:
926
+ alpha2: TV
927
+ name: Tuvalu
928
+ alpha3: TUV
929
+ UG:
930
+ alpha2: UG
931
+ name: Uganda
932
+ alpha3: UGA
933
+ UA:
934
+ alpha2: UA
935
+ name: Ukraine
936
+ alpha3: UKR
937
+ AE:
938
+ alpha2: AE
939
+ name: United Arab Emirates
940
+ alpha3: ARE
941
+ GB:
942
+ alpha2: GB
943
+ name: United Kingdom
944
+ alpha3: GBR
945
+ UY:
946
+ alpha2: UY
947
+ name: Uruguay
948
+ alpha3: URY
949
+ VU:
950
+ alpha2: VU
951
+ name: Vanuatu
952
+ alpha3: VUT
953
+ VA:
954
+ alpha2: VA
955
+ name: Holy See (Vatican City State)
956
+ alpha3: VAT
957
+ VE:
958
+ alpha2: VE
959
+ name: Venezuela
960
+ alpha3: VEN
961
+ VN:
962
+ alpha2: VN
963
+ name: Viet Nam
964
+ alpha3: VNM
965
+ WF:
966
+ alpha2: WF
967
+ name: Wallis and Futuna
968
+ alpha3: WLF
969
+ EH:
970
+ alpha2: EH
971
+ name: Western Sahara
972
+ alpha3: ESH
973
+ ZW:
974
+ alpha2: ZW
975
+ name: Zimbabwe
976
+ alpha3: ZWE
977
+ YE:
978
+ alpha2: YE
979
+ name: Yemen
980
+ alpha3: YEM
981
+ ZM:
982
+ alpha2: ZM
983
+ name: Zambia
984
+ alpha3: ZMB
@@ -0,0 +1,49 @@
1
+ # provides translation between ISO 3166 names and codes
2
+ # country_select plugin should be using ISO 3166 names
3
+ # http://www.iso.org/iso/english_country_names_and_code_elements
4
+ # additional code types can be added in config/countries.yml with translation methods added in this helper
5
+
6
+ require 'yaml'
7
+
8
+ module SunDawg
9
+ module CountryIsoTranslater
10
+ # allows client application to override YAML hash
11
+ FILE = File.expand_path(File.join(File.dirname(__FILE__), 'countries.yml')) unless defined?(FILE)
12
+ COUNTRIES = YAML.load_file(FILE) unless defined?(COUNTRIES)
13
+
14
+ # O(N) translation from iso3166 name to 2-digit code
15
+ def self.translate_iso3166_name_to_alpha2(name)
16
+ translate_standard(name, "name", "alpha2")
17
+ end
18
+
19
+ def self.translate_iso3166_name_to_alpha3(name)
20
+ translate_standard(name, "name", "alpha3")
21
+ end
22
+
23
+ def self.translate_iso3166_alpha2_to_alpha3(code)
24
+ translate_standard(code, "alpha2", "alpha3")
25
+ end
26
+
27
+ def self.translate_iso3166_alpha3_to_name(code)
28
+ translate_standard(code, "alpha3", "name")
29
+ end
30
+
31
+ # O(N) translation from one convention standard to another
32
+ def self.translate_standard(s, from_standard, to_standard)
33
+ COUNTRIES.each_pair { |key, value|
34
+ return value[to_standard] if value[from_standard] == s
35
+ }
36
+ raise NoCountryError.new("[#{s}] IS NOT VALID")
37
+ end
38
+
39
+ # O(1) translation of iso3166 2-digit code to name
40
+ def self.translate_iso3166_alpha2_to_name(code)
41
+ country = COUNTRIES[code]
42
+ raise NoCountryError.new("[#{code}] IS NOT VALID") if country.nil?
43
+ country["name"]
44
+ end
45
+
46
+ class NoCountryError < StandardError
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{sundawg_country_codes}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Christopher Sun"]
9
+ s.date = %q{2009-11-24}
10
+ s.description = %q{Manage ISO 3166 Country Names and Codes.}
11
+ s.email = %q{christopher.sun@gmail.com}
12
+ s.extra_rdoc_files = ["README", "lib/countries.yml", "lib/country_iso_translater.rb"]
13
+ s.files = ["README", "Rakefile", "lib/countries.yml", "lib/country_iso_translater.rb", "test/country_iso_translater_test.rb", "Manifest", "sundawg_country_codes.gemspec", "test/test_helper.rb"]
14
+ s.homepage = %q{http://github.com/SunDawg/country_codes}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Sundawg_country_codes", "--main", "README"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{sundawg_country_codes}
18
+ s.rubygems_version = %q{1.3.5}
19
+ s.summary = %q{Manage ISO 3166 Country Names and Codes.}
20
+ s.test_files = ["test/country_iso_translater_test.rb", "test/test_helper.rb"]
21
+
22
+ if s.respond_to? :specification_version then
23
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
24
+ s.specification_version = 3
25
+
26
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
27
+ else
28
+ end
29
+ else
30
+ end
31
+ end
@@ -0,0 +1,65 @@
1
+ require 'test_helper'
2
+
3
+ # allows override of FILE
4
+ module SunDawg
5
+ module CountryIsoTranslater
6
+ FILE = "lib/countries.yml"
7
+ end
8
+ end
9
+
10
+ require 'country_iso_translater'
11
+
12
+ class CountryIsoTranslaterTest < Test::Unit::TestCase
13
+ def test_iso3166_alpha2_to_name
14
+ assert_equal client.translate_iso3166_alpha2_to_name("US"), "United States"
15
+ assert_equal client.translate_iso3166_alpha2_to_name("HU"), "Hungary"
16
+ end
17
+
18
+ def test_iso3166_name_to_alpha2
19
+ assert_equal client.translate_iso3166_name_to_alpha2("United States"), "US"
20
+ assert_equal client.translate_iso3166_name_to_alpha2("Jordan"), "JO"
21
+ end
22
+
23
+ def test_iso3166_name_to_alpha3
24
+ assert_equal client.translate_iso3166_name_to_alpha3("United States"), "USA"
25
+ assert_equal client.translate_iso3166_name_to_alpha3("Egypt"), "EGY"
26
+ end
27
+
28
+ def test_iso3166_alpha3_to_name
29
+ assert_equal client.translate_iso3166_alpha3_to_name("USA"), "United States"
30
+ assert_equal client.translate_iso3166_alpha3_to_name("ESP"), "Spain"
31
+ end
32
+
33
+ def test_translate_standard
34
+ assert_equal client.translate_standard("CN", "alpha2", "name"), "China"
35
+ assert_equal client.translate_standard("China", "name", "alpha2"), "CN"
36
+ end
37
+
38
+ def test_error_on_invalid_country
39
+ begin
40
+ client.translate_iso3166_name_to_alpha2("Candyland")
41
+ fail "Expected client::NoCountryError"
42
+ rescue client::NoCountryError => e
43
+ assert_equal e.to_s, "[Candyland] IS NOT VALID"
44
+ rescue => e
45
+ fail "Expected client::NoCountryError"
46
+ end
47
+ end
48
+
49
+ def test_error_on_invalid_alpha2
50
+ begin
51
+ client.translate_iso3166_alpha2_to_name("XX")
52
+ fail "Expected client::NoCountryError"
53
+ rescue client::NoCountryError => e
54
+ assert_equal e.to_s, "[XX] IS NOT VALID"
55
+ rescue => e
56
+ fail "Expected client::NoCountryError"
57
+ end
58
+ end
59
+
60
+ protected
61
+
62
+ def client
63
+ SunDawg::CountryIsoTranslater
64
+ end
65
+ end
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sundawg_country_codes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Christopher Sun
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-24 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Manage ISO 3166 Country Names and Codes.
17
+ email: christopher.sun@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ - lib/countries.yml
25
+ - lib/country_iso_translater.rb
26
+ files:
27
+ - README
28
+ - Rakefile
29
+ - lib/countries.yml
30
+ - lib/country_iso_translater.rb
31
+ - test/country_iso_translater_test.rb
32
+ - Manifest
33
+ - sundawg_country_codes.gemspec
34
+ has_rdoc: true
35
+ homepage: http://github.com/SunDawg/country_codes
36
+ licenses: []
37
+
38
+ post_install_message:
39
+ rdoc_options:
40
+ - --line-numbers
41
+ - --inline-source
42
+ - --title
43
+ - Sundawg_country_codes
44
+ - --main
45
+ - README
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: "0"
53
+ version:
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: "1.2"
59
+ version:
60
+ requirements: []
61
+
62
+ rubyforge_project: sundawg_country_codes
63
+ rubygems_version: 1.3.5
64
+ signing_key:
65
+ specification_version: 3
66
+ summary: Manage ISO 3166 Country Names and Codes.
67
+ test_files:
68
+ - test/country_iso_translater_test.rb
69
+ - test/test_helper.rb