sundawg_country_codes 0.0.1

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/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