worldly 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.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +113 -0
- data/Rakefile +1 -0
- data/lib/.gitignore +0 -0
- data/lib/data/countries.yml +1459 -0
- data/lib/data/regions/AD.yml +8 -0
- data/lib/data/regions/AE.yml +8 -0
- data/lib/data/regions/AF.yml +35 -0
- data/lib/data/regions/AG.yml +9 -0
- data/lib/data/regions/AL.yml +37 -0
- data/lib/data/regions/AM.yml +12 -0
- data/lib/data/regions/AO.yml +19 -0
- data/lib/data/regions/AR.yml +25 -0
- data/lib/data/regions/AT.yml +10 -0
- data/lib/data/regions/AU.yml +9 -0
- data/lib/data/regions/AZ.yml +78 -0
- data/lib/data/regions/BA.yml +3 -0
- data/lib/data/regions/BB.yml +12 -0
- data/lib/data/regions/BD.yml +65 -0
- data/lib/data/regions/BE.yml +12 -0
- data/lib/data/regions/BF.yml +46 -0
- data/lib/data/regions/BG.yml +29 -0
- data/lib/data/regions/BH.yml +6 -0
- data/lib/data/regions/BI.yml +17 -0
- data/lib/data/regions/BJ.yml +13 -0
- data/lib/data/regions/BN.yml +5 -0
- data/lib/data/regions/BO.yml +10 -0
- data/lib/data/regions/BQ.yml +4 -0
- data/lib/data/regions/BR.yml +28 -0
- data/lib/data/regions/BS.yml +22 -0
- data/lib/data/regions/BT.yml +21 -0
- data/lib/data/regions/BW.yml +10 -0
- data/lib/data/regions/BY.yml +8 -0
- data/lib/data/regions/BZ.yml +7 -0
- data/lib/data/regions/CA.yml +14 -0
- data/lib/data/regions/CD.yml +12 -0
- data/lib/data/regions/CF.yml +18 -0
- data/lib/data/regions/CG.yml +12 -0
- data/lib/data/regions/CH.yml +27 -0
- data/lib/data/regions/CI.yml +20 -0
- data/lib/data/regions/CL.yml +16 -0
- data/lib/data/regions/CM.yml +11 -0
- data/lib/data/regions/CN.yml +35 -0
- data/lib/data/regions/CO.yml +34 -0
- data/lib/data/regions/CR.yml +8 -0
- data/lib/data/regions/CU.yml +16 -0
- data/lib/data/regions/CV.yml +18 -0
- data/lib/data/regions/CY.yml +7 -0
- data/lib/data/regions/CZ.yml +15 -0
- data/lib/data/regions/DE.yml +17 -0
- data/lib/data/regions/DJ.yml +7 -0
- data/lib/data/regions/DK.yml +22 -0
- data/lib/data/regions/DM.yml +11 -0
- data/lib/data/regions/DO.yml +32 -0
- data/lib/data/regions/DZ.yml +49 -0
- data/lib/data/regions/EC.yml +25 -0
- data/lib/data/regions/EE.yml +16 -0
- data/lib/data/regions/EG.yml +28 -0
- data/lib/data/regions/EH.yml +5 -0
- data/lib/data/regions/ER.yml +7 -0
- data/lib/data/regions/ES.yml +53 -0
- data/lib/data/regions/ET.yml +12 -0
- data/lib/data/regions/FI.yml +7 -0
- data/lib/data/regions/FJ.yml +6 -0
- data/lib/data/regions/FM.yml +5 -0
- data/lib/data/regions/FR.yml +103 -0
- data/lib/data/regions/GA.yml +10 -0
- data/lib/data/regions/GB.yml +231 -0
- data/lib/data/regions/GD.yml +8 -0
- data/lib/data/regions/GE.yml +13 -0
- data/lib/data/regions/GH.yml +11 -0
- data/lib/data/regions/GM.yml +7 -0
- data/lib/data/regions/GN.yml +35 -0
- data/lib/data/regions/GQ.yml +10 -0
- data/lib/data/regions/GR.yml +53 -0
- data/lib/data/regions/GT.yml +23 -0
- data/lib/data/regions/GU.yml +2 -0
- data/lib/data/regions/GW.yml +10 -0
- data/lib/data/regions/GY.yml +11 -0
- data/lib/data/regions/HN.yml +19 -0
- data/lib/data/regions/HR.yml +22 -0
- data/lib/data/regions/HT.yml +10 -0
- data/lib/data/regions/HU.yml +44 -0
- data/lib/data/regions/IE.yml +27 -0
- data/lib/data/regions/IL.yml +7 -0
- data/lib/data/regions/IN.yml +36 -0
- data/lib/data/regions/IQ.yml +19 -0
- data/lib/data/regions/IR.yml +32 -0
- data/lib/data/regions/IS.yml +10 -0
- data/lib/data/regions/IT.yml +111 -0
- data/lib/data/regions/JM.yml +15 -0
- data/lib/data/regions/JO.yml +13 -0
- data/lib/data/regions/JP.yml +48 -0
- data/lib/data/regions/KE.yml +9 -0
- data/lib/data/regions/KG.yml +9 -0
- data/lib/data/regions/KH.yml +25 -0
- data/lib/data/regions/KI.yml +4 -0
- data/lib/data/regions/KM.yml +4 -0
- data/lib/data/regions/KN.yml +15 -0
- data/lib/data/regions/KP.yml +14 -0
- data/lib/data/regions/KR.yml +17 -0
- data/lib/data/regions/KW.yml +7 -0
- data/lib/data/regions/KZ.yml +18 -0
- data/lib/data/regions/Ky.yml +7 -0
- data/lib/data/regions/LA.yml +19 -0
- data/lib/data/regions/LB.yml +7 -0
- data/lib/data/regions/LI.yml +12 -0
- data/lib/data/regions/LK.yml +26 -0
- data/lib/data/regions/LR.yml +16 -0
- data/lib/data/regions/LS.yml +11 -0
- data/lib/data/regions/LT.yml +11 -0
- data/lib/data/regions/LU.yml +4 -0
- data/lib/data/regions/LV.yml +34 -0
- data/lib/data/regions/LY.yml +35 -0
- data/lib/data/regions/MA.yml +63 -0
- data/lib/data/regions/MD.yml +14 -0
- data/lib/data/regions/ME.yml +22 -0
- data/lib/data/regions/MG.yml +7 -0
- data/lib/data/regions/MH.yml +26 -0
- data/lib/data/regions/ML.yml +10 -0
- data/lib/data/regions/MM.yml +15 -0
- data/lib/data/regions/MN.yml +23 -0
- data/lib/data/regions/MR.yml +14 -0
- data/lib/data/regions/MT.yml +69 -0
- data/lib/data/regions/MU.yml +18 -0
- data/lib/data/regions/MV.yml +21 -0
- data/lib/data/regions/MW.yml +28 -0
- data/lib/data/regions/MX.yml +33 -0
- data/lib/data/regions/MY.yml +17 -0
- data/lib/data/regions/MZ.yml +12 -0
- data/lib/data/regions/NA.yml +14 -0
- data/lib/data/regions/NE.yml +9 -0
- data/lib/data/regions/NG.yml +38 -0
- data/lib/data/regions/NI.yml +18 -0
- data/lib/data/regions/NL.yml +13 -0
- data/lib/data/regions/NO.yml +22 -0
- data/lib/data/regions/NP.yml +15 -0
- data/lib/data/regions/NR.yml +15 -0
- data/lib/data/regions/OM.yml +10 -0
- data/lib/data/regions/PA.yml +11 -0
- data/lib/data/regions/PE.yml +27 -0
- data/lib/data/regions/PG.yml +21 -0
- data/lib/data/regions/PH.yml +83 -0
- data/lib/data/regions/PK.yml +9 -0
- data/lib/data/regions/PL.yml +17 -0
- data/lib/data/regions/PT.yml +21 -0
- data/lib/data/regions/PW.yml +17 -0
- data/lib/data/regions/PY.yml +19 -0
- data/lib/data/regions/QA.yml +11 -0
- data/lib/data/regions/RO.yml +43 -0
- data/lib/data/regions/RS.yml +31 -0
- data/lib/data/regions/RU.yml +84 -0
- data/lib/data/regions/RW.yml +6 -0
- data/lib/data/regions/SA.yml +14 -0
- data/lib/data/regions/SB.yml +11 -0
- data/lib/data/regions/SC.yml +24 -0
- data/lib/data/regions/SD.yml +27 -0
- data/lib/data/regions/SG.yml +2 -0
- data/lib/data/regions/SH.yml +4 -0
- data/lib/data/regions/SI.yml +194 -0
- data/lib/data/regions/SK.yml +9 -0
- data/lib/data/regions/SL.yml +5 -0
- data/lib/data/regions/SM.yml +10 -0
- data/lib/data/regions/SN.yml +12 -0
- data/lib/data/regions/SO.yml +19 -0
- data/lib/data/regions/SR.yml +11 -0
- data/lib/data/regions/ST.yml +3 -0
- data/lib/data/regions/SV.yml +15 -0
- data/lib/data/regions/SY.yml +15 -0
- data/lib/data/regions/SZ.yml +5 -0
- data/lib/data/regions/TD.yml +19 -0
- data/lib/data/regions/TF.yml +5 -0
- data/lib/data/regions/TG.yml +6 -0
- data/lib/data/regions/TH.yml +78 -0
- data/lib/data/regions/TL.yml +14 -0
- data/lib/data/regions/TM.yml +7 -0
- data/lib/data/regions/TN.yml +25 -0
- data/lib/data/regions/TO.yml +6 -0
- data/lib/data/regions/TR.yml +82 -0
- data/lib/data/regions/TT.yml +17 -0
- data/lib/data/regions/TV.yml +9 -0
- data/lib/data/regions/TW.yml +24 -0
- data/lib/data/regions/TZ.yml +27 -0
- data/lib/data/regions/Tj.yml +4 -0
- data/lib/data/regions/UA.yml +28 -0
- data/lib/data/regions/UG.yml +81 -0
- data/lib/data/regions/UM.yml +10 -0
- data/lib/data/regions/US.yml +59 -0
- data/lib/data/regions/UY.yml +20 -0
- data/lib/data/regions/UZ.yml +15 -0
- data/lib/data/regions/VC.yml +7 -0
- data/lib/data/regions/VE.yml +26 -0
- data/lib/data/regions/VN.yml +65 -0
- data/lib/data/regions/VU.yml +7 -0
- data/lib/data/regions/YE.yml +20 -0
- data/lib/data/regions/ZA.yml +10 -0
- data/lib/data/regions/ZM.yml +10 -0
- data/lib/data/regions/ZW.yml +11 -0
- data/lib/worldly/country.rb +159 -0
- data/lib/worldly/version.rb +3 -0
- data/lib/worldly.rb +3 -0
- data/worldly.gemspec +23 -0
- metadata +276 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6068b30844d8b8b46ec7d1ba870ae785add189d7
|
4
|
+
data.tar.gz: dcde25b22092ed67cb06b4d5bafe5aefa0294238
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7b96e40b4b799578925f67867d50833f407ad5bef8f22e099d82ac4b2d3958403a5da963025f387c90d8119e1b1a06d5aca19f0e606713e78c2e4fb0fdceac63
|
7
|
+
data.tar.gz: e8babb37f54b270905a66b2f948fc9a6162bc19d9921370e3eb2a51a0260c49e36a0e79e16e2c9aa7ba4eab4aad46bb3d43cb8cef1daa6e8f30d4b6d7db8c885
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 danlewis
|
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.
|
data/README.md
ADDED
@@ -0,0 +1,113 @@
|
|
1
|
+
# Worldly
|
2
|
+
|
3
|
+
Worldly provides information on countries for the purpose of address formatting and local naming
|
4
|
+
Additional information on country phone number conventions is available.
|
5
|
+
|
6
|
+
The gem aims to be small with no dependencies.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
gem 'worldly'
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
|
16
|
+
$ bundle
|
17
|
+
|
18
|
+
Or install it yourself as:
|
19
|
+
|
20
|
+
$ gem install worldly
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
|
24
|
+
Worldly has a Country class which can be used to access address and telephone information for countries.
|
25
|
+
|
26
|
+
Get all countries:
|
27
|
+
```
|
28
|
+
Worldly::Country.all => [["Afghanistan", "AF"], ["Albania", "AL"], ["Algeria", "DZ"],....]
|
29
|
+
```
|
30
|
+
Check if a country exists?
|
31
|
+
```
|
32
|
+
Worldly::Country.exists?('AU') => true
|
33
|
+
```
|
34
|
+
### Working with a Country
|
35
|
+
|
36
|
+
Retrieve a country using it's country code
|
37
|
+
```
|
38
|
+
country = Worldly::Country['AU'] => #<Worldly::Country:0x007fa48239ee90 @code="AU", @data={:name=>"Australia", :alpha2=>"AU", :alpha3=>"AUS", :country_code=>"61", :fields=>{:city=>{:label=>"City", :format=>["upcase"]}, :region=>{:label=>"State", :format=>["upcase"]}, :postcode=>{:label=>"Post Code"}}, :address_format=>"{{address1}}\n{{address2}}\n{{city}} {{region}} {{postcode}}\n{{country}}"}>
|
39
|
+
```
|
40
|
+
```
|
41
|
+
country.name => Australia
|
42
|
+
country.code => AU
|
43
|
+
country.alpha2 => AU
|
44
|
+
country.alpha3 => AUS
|
45
|
+
country.country_code => 61
|
46
|
+
```
|
47
|
+
Worldly uses the address fields locality, city, region & postcode. Address1, Address2 and Country are implied and hence not added. A call to country.fields will return the fields not implied that the country address uses.
|
48
|
+
```
|
49
|
+
country.fields => {:city=>{:label=>"City", :format=>["upcase"], :required=>true}, :region=>{:label=>"State", :format=>["upcase"], :required=>true}, :postcode=>{:label=>"Post Code", :required=>true}}
|
50
|
+
```
|
51
|
+
Each field notes the following details:
|
52
|
+
|
53
|
+
1. Label: The fields name in the specific country. For example a postcode is called "Post Code" in Australia, "PIN code" in India and "Zip Code" in the US
|
54
|
+
2. Required: Whether the field is required
|
55
|
+
3. Format: format is an array or rules applied when displaying the address. Current address rules include
|
56
|
+
* upcase: Change the field to uppercase
|
57
|
+
* code: Used be regions. By default the regions full name is used when displaying otherwise the region code. For example 'NSW' is used rather than New South Wales for the Australia state.
|
58
|
+
|
59
|
+
Field Methods
|
60
|
+
```
|
61
|
+
country.has_field?(:city) => true
|
62
|
+
country.has_field?(:locality) => false
|
63
|
+
country.required_fields => {:city=>{:label=>"City", :format=>["upcase"], :required=>true}, :region=>{:label=>"State", :format=>["upcase"], :required=>true}, :postcode=>{:label=>"Post Code", :required=>true}}
|
64
|
+
```
|
65
|
+
To retrieve all fields including address1, address2 & country use
|
66
|
+
```
|
67
|
+
country.all_fields => [:address1, :address2, :country, :city, :region, :postcode]
|
68
|
+
```
|
69
|
+
### Regions
|
70
|
+
|
71
|
+
Regions (State/Province) are provided for some countries in seperate YAML files
|
72
|
+
|
73
|
+
Check if a regions exist for country
|
74
|
+
```
|
75
|
+
country.regions? => true
|
76
|
+
```
|
77
|
+
Check if a given field has regions. This can be useful when generating forms based on the country.
|
78
|
+
```
|
79
|
+
country.has_regions?(:region) => true
|
80
|
+
country.has_regions?(:city) => false
|
81
|
+
```
|
82
|
+
```
|
83
|
+
country.region_options => [["Australian Capital Territory", "ACT"], ["New South Wales", "NSW"], ["Northern Territory", "NT"], ["Queensland", "QLD"], ["South Australia", "SA"], ["Tasmania", "TAS"], ["Victoria", "VIC"], ["Western Australia", "WA"]]
|
84
|
+
```
|
85
|
+
|
86
|
+
### Formatting an address for mailing or display
|
87
|
+
|
88
|
+
You can return the address formatting with liquid tags
|
89
|
+
```
|
90
|
+
country.address_format => "{{address1}}\n{{address2}}\n{{city}} {{region}} {{postcode}}\n{{country}}"
|
91
|
+
```
|
92
|
+
|
93
|
+
To have the address formatted correctly for mailing use to_print(attributes, sending_country=nil)
|
94
|
+
* attributes: takes a hash of field values. If a required field is not provided it will simple not display in the address.
|
95
|
+
* sending_country: a country code - if provided and the address country matches the sending_country the country field will not be shown. This is useful if generating mailing addresses to be sent by your home country where country field is not required.
|
96
|
+
|
97
|
+
```
|
98
|
+
country.to_print({address1: '12 hey St', address2: '', postcode: '2000', city: 'Newtown', state:'NSW'})
|
99
|
+
=> "12 hey St\nNEWTOWN 2000\nAustralia"
|
100
|
+
country.to_print({address1: '12 hey St', region:'NSW', postcode: '2000' }, 'AU')
|
101
|
+
=> "12 hey St\nNSW 2000"
|
102
|
+
```
|
103
|
+
## Contributing
|
104
|
+
|
105
|
+
If you find a country with mission regions, or a country missing address formatting information you can create a issue ticket with corrections.
|
106
|
+
|
107
|
+
Thanks bro!
|
108
|
+
|
109
|
+
1. Fork it ( http://github.com/amnwebmaster/worldly/fork )
|
110
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
111
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
112
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
113
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/.gitignore
ADDED
File without changes
|