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.
Files changed (206) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +113 -0
  6. data/Rakefile +1 -0
  7. data/lib/.gitignore +0 -0
  8. data/lib/data/countries.yml +1459 -0
  9. data/lib/data/regions/AD.yml +8 -0
  10. data/lib/data/regions/AE.yml +8 -0
  11. data/lib/data/regions/AF.yml +35 -0
  12. data/lib/data/regions/AG.yml +9 -0
  13. data/lib/data/regions/AL.yml +37 -0
  14. data/lib/data/regions/AM.yml +12 -0
  15. data/lib/data/regions/AO.yml +19 -0
  16. data/lib/data/regions/AR.yml +25 -0
  17. data/lib/data/regions/AT.yml +10 -0
  18. data/lib/data/regions/AU.yml +9 -0
  19. data/lib/data/regions/AZ.yml +78 -0
  20. data/lib/data/regions/BA.yml +3 -0
  21. data/lib/data/regions/BB.yml +12 -0
  22. data/lib/data/regions/BD.yml +65 -0
  23. data/lib/data/regions/BE.yml +12 -0
  24. data/lib/data/regions/BF.yml +46 -0
  25. data/lib/data/regions/BG.yml +29 -0
  26. data/lib/data/regions/BH.yml +6 -0
  27. data/lib/data/regions/BI.yml +17 -0
  28. data/lib/data/regions/BJ.yml +13 -0
  29. data/lib/data/regions/BN.yml +5 -0
  30. data/lib/data/regions/BO.yml +10 -0
  31. data/lib/data/regions/BQ.yml +4 -0
  32. data/lib/data/regions/BR.yml +28 -0
  33. data/lib/data/regions/BS.yml +22 -0
  34. data/lib/data/regions/BT.yml +21 -0
  35. data/lib/data/regions/BW.yml +10 -0
  36. data/lib/data/regions/BY.yml +8 -0
  37. data/lib/data/regions/BZ.yml +7 -0
  38. data/lib/data/regions/CA.yml +14 -0
  39. data/lib/data/regions/CD.yml +12 -0
  40. data/lib/data/regions/CF.yml +18 -0
  41. data/lib/data/regions/CG.yml +12 -0
  42. data/lib/data/regions/CH.yml +27 -0
  43. data/lib/data/regions/CI.yml +20 -0
  44. data/lib/data/regions/CL.yml +16 -0
  45. data/lib/data/regions/CM.yml +11 -0
  46. data/lib/data/regions/CN.yml +35 -0
  47. data/lib/data/regions/CO.yml +34 -0
  48. data/lib/data/regions/CR.yml +8 -0
  49. data/lib/data/regions/CU.yml +16 -0
  50. data/lib/data/regions/CV.yml +18 -0
  51. data/lib/data/regions/CY.yml +7 -0
  52. data/lib/data/regions/CZ.yml +15 -0
  53. data/lib/data/regions/DE.yml +17 -0
  54. data/lib/data/regions/DJ.yml +7 -0
  55. data/lib/data/regions/DK.yml +22 -0
  56. data/lib/data/regions/DM.yml +11 -0
  57. data/lib/data/regions/DO.yml +32 -0
  58. data/lib/data/regions/DZ.yml +49 -0
  59. data/lib/data/regions/EC.yml +25 -0
  60. data/lib/data/regions/EE.yml +16 -0
  61. data/lib/data/regions/EG.yml +28 -0
  62. data/lib/data/regions/EH.yml +5 -0
  63. data/lib/data/regions/ER.yml +7 -0
  64. data/lib/data/regions/ES.yml +53 -0
  65. data/lib/data/regions/ET.yml +12 -0
  66. data/lib/data/regions/FI.yml +7 -0
  67. data/lib/data/regions/FJ.yml +6 -0
  68. data/lib/data/regions/FM.yml +5 -0
  69. data/lib/data/regions/FR.yml +103 -0
  70. data/lib/data/regions/GA.yml +10 -0
  71. data/lib/data/regions/GB.yml +231 -0
  72. data/lib/data/regions/GD.yml +8 -0
  73. data/lib/data/regions/GE.yml +13 -0
  74. data/lib/data/regions/GH.yml +11 -0
  75. data/lib/data/regions/GM.yml +7 -0
  76. data/lib/data/regions/GN.yml +35 -0
  77. data/lib/data/regions/GQ.yml +10 -0
  78. data/lib/data/regions/GR.yml +53 -0
  79. data/lib/data/regions/GT.yml +23 -0
  80. data/lib/data/regions/GU.yml +2 -0
  81. data/lib/data/regions/GW.yml +10 -0
  82. data/lib/data/regions/GY.yml +11 -0
  83. data/lib/data/regions/HN.yml +19 -0
  84. data/lib/data/regions/HR.yml +22 -0
  85. data/lib/data/regions/HT.yml +10 -0
  86. data/lib/data/regions/HU.yml +44 -0
  87. data/lib/data/regions/IE.yml +27 -0
  88. data/lib/data/regions/IL.yml +7 -0
  89. data/lib/data/regions/IN.yml +36 -0
  90. data/lib/data/regions/IQ.yml +19 -0
  91. data/lib/data/regions/IR.yml +32 -0
  92. data/lib/data/regions/IS.yml +10 -0
  93. data/lib/data/regions/IT.yml +111 -0
  94. data/lib/data/regions/JM.yml +15 -0
  95. data/lib/data/regions/JO.yml +13 -0
  96. data/lib/data/regions/JP.yml +48 -0
  97. data/lib/data/regions/KE.yml +9 -0
  98. data/lib/data/regions/KG.yml +9 -0
  99. data/lib/data/regions/KH.yml +25 -0
  100. data/lib/data/regions/KI.yml +4 -0
  101. data/lib/data/regions/KM.yml +4 -0
  102. data/lib/data/regions/KN.yml +15 -0
  103. data/lib/data/regions/KP.yml +14 -0
  104. data/lib/data/regions/KR.yml +17 -0
  105. data/lib/data/regions/KW.yml +7 -0
  106. data/lib/data/regions/KZ.yml +18 -0
  107. data/lib/data/regions/Ky.yml +7 -0
  108. data/lib/data/regions/LA.yml +19 -0
  109. data/lib/data/regions/LB.yml +7 -0
  110. data/lib/data/regions/LI.yml +12 -0
  111. data/lib/data/regions/LK.yml +26 -0
  112. data/lib/data/regions/LR.yml +16 -0
  113. data/lib/data/regions/LS.yml +11 -0
  114. data/lib/data/regions/LT.yml +11 -0
  115. data/lib/data/regions/LU.yml +4 -0
  116. data/lib/data/regions/LV.yml +34 -0
  117. data/lib/data/regions/LY.yml +35 -0
  118. data/lib/data/regions/MA.yml +63 -0
  119. data/lib/data/regions/MD.yml +14 -0
  120. data/lib/data/regions/ME.yml +22 -0
  121. data/lib/data/regions/MG.yml +7 -0
  122. data/lib/data/regions/MH.yml +26 -0
  123. data/lib/data/regions/ML.yml +10 -0
  124. data/lib/data/regions/MM.yml +15 -0
  125. data/lib/data/regions/MN.yml +23 -0
  126. data/lib/data/regions/MR.yml +14 -0
  127. data/lib/data/regions/MT.yml +69 -0
  128. data/lib/data/regions/MU.yml +18 -0
  129. data/lib/data/regions/MV.yml +21 -0
  130. data/lib/data/regions/MW.yml +28 -0
  131. data/lib/data/regions/MX.yml +33 -0
  132. data/lib/data/regions/MY.yml +17 -0
  133. data/lib/data/regions/MZ.yml +12 -0
  134. data/lib/data/regions/NA.yml +14 -0
  135. data/lib/data/regions/NE.yml +9 -0
  136. data/lib/data/regions/NG.yml +38 -0
  137. data/lib/data/regions/NI.yml +18 -0
  138. data/lib/data/regions/NL.yml +13 -0
  139. data/lib/data/regions/NO.yml +22 -0
  140. data/lib/data/regions/NP.yml +15 -0
  141. data/lib/data/regions/NR.yml +15 -0
  142. data/lib/data/regions/OM.yml +10 -0
  143. data/lib/data/regions/PA.yml +11 -0
  144. data/lib/data/regions/PE.yml +27 -0
  145. data/lib/data/regions/PG.yml +21 -0
  146. data/lib/data/regions/PH.yml +83 -0
  147. data/lib/data/regions/PK.yml +9 -0
  148. data/lib/data/regions/PL.yml +17 -0
  149. data/lib/data/regions/PT.yml +21 -0
  150. data/lib/data/regions/PW.yml +17 -0
  151. data/lib/data/regions/PY.yml +19 -0
  152. data/lib/data/regions/QA.yml +11 -0
  153. data/lib/data/regions/RO.yml +43 -0
  154. data/lib/data/regions/RS.yml +31 -0
  155. data/lib/data/regions/RU.yml +84 -0
  156. data/lib/data/regions/RW.yml +6 -0
  157. data/lib/data/regions/SA.yml +14 -0
  158. data/lib/data/regions/SB.yml +11 -0
  159. data/lib/data/regions/SC.yml +24 -0
  160. data/lib/data/regions/SD.yml +27 -0
  161. data/lib/data/regions/SG.yml +2 -0
  162. data/lib/data/regions/SH.yml +4 -0
  163. data/lib/data/regions/SI.yml +194 -0
  164. data/lib/data/regions/SK.yml +9 -0
  165. data/lib/data/regions/SL.yml +5 -0
  166. data/lib/data/regions/SM.yml +10 -0
  167. data/lib/data/regions/SN.yml +12 -0
  168. data/lib/data/regions/SO.yml +19 -0
  169. data/lib/data/regions/SR.yml +11 -0
  170. data/lib/data/regions/ST.yml +3 -0
  171. data/lib/data/regions/SV.yml +15 -0
  172. data/lib/data/regions/SY.yml +15 -0
  173. data/lib/data/regions/SZ.yml +5 -0
  174. data/lib/data/regions/TD.yml +19 -0
  175. data/lib/data/regions/TF.yml +5 -0
  176. data/lib/data/regions/TG.yml +6 -0
  177. data/lib/data/regions/TH.yml +78 -0
  178. data/lib/data/regions/TL.yml +14 -0
  179. data/lib/data/regions/TM.yml +7 -0
  180. data/lib/data/regions/TN.yml +25 -0
  181. data/lib/data/regions/TO.yml +6 -0
  182. data/lib/data/regions/TR.yml +82 -0
  183. data/lib/data/regions/TT.yml +17 -0
  184. data/lib/data/regions/TV.yml +9 -0
  185. data/lib/data/regions/TW.yml +24 -0
  186. data/lib/data/regions/TZ.yml +27 -0
  187. data/lib/data/regions/Tj.yml +4 -0
  188. data/lib/data/regions/UA.yml +28 -0
  189. data/lib/data/regions/UG.yml +81 -0
  190. data/lib/data/regions/UM.yml +10 -0
  191. data/lib/data/regions/US.yml +59 -0
  192. data/lib/data/regions/UY.yml +20 -0
  193. data/lib/data/regions/UZ.yml +15 -0
  194. data/lib/data/regions/VC.yml +7 -0
  195. data/lib/data/regions/VE.yml +26 -0
  196. data/lib/data/regions/VN.yml +65 -0
  197. data/lib/data/regions/VU.yml +7 -0
  198. data/lib/data/regions/YE.yml +20 -0
  199. data/lib/data/regions/ZA.yml +10 -0
  200. data/lib/data/regions/ZM.yml +10 -0
  201. data/lib/data/regions/ZW.yml +11 -0
  202. data/lib/worldly/country.rb +159 -0
  203. data/lib/worldly/version.rb +3 -0
  204. data/lib/worldly.rb +3 -0
  205. data/worldly.gemspec +23 -0
  206. 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
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in worldly.gemspec
4
+ gemspec
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