going_postal 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/going_postal.rb +18 -20
- metadata +3 -3
data/lib/going_postal.rb
CHANGED
@@ -66,13 +66,10 @@ module GoingPostal
|
|
66
66
|
#
|
67
67
|
def postcode?(*args)
|
68
68
|
string, country_code = get_args_for_format_postcode(args)
|
69
|
-
|
70
|
-
when "GB", "UK", "US", "USA", "CA", "AU", "NZ", "ZA"
|
71
|
-
format_postcode(string, country_code) || false
|
72
|
-
when "IE"
|
69
|
+
if country_code.to_s.upcase == "IE"
|
73
70
|
string.nil? || string.to_s.empty? ? "" : false
|
74
71
|
else
|
75
|
-
format_postcode(string, country_code)
|
72
|
+
format_postcode(string, country_code) || false
|
76
73
|
end
|
77
74
|
end
|
78
75
|
alias post_code? postcode?
|
@@ -123,23 +120,15 @@ module GoingPostal
|
|
123
120
|
# trailing whitespace.
|
124
121
|
#
|
125
122
|
# Ireland (IE) has no postcodes, so nil will always be returned.
|
126
|
-
|
123
|
+
#--
|
124
|
+
# The magic is done calling a formatting method for each country. If no such
|
125
|
+
# method exists a default method is called stripping the leading and trailing
|
126
|
+
# whitespace.
|
127
|
+
#++
|
127
128
|
def format_postcode(*args)
|
128
129
|
string, country_code = get_args_for_format_postcode(args)
|
129
|
-
|
130
|
-
|
131
|
-
format_gb_postcode(string)
|
132
|
-
when "US", "USA"
|
133
|
-
format_us_zipcode(string)
|
134
|
-
when "CA"
|
135
|
-
format_ca_postcode(string)
|
136
|
-
when "AU", "NZ", "ZA"
|
137
|
-
format_au_postcode(string)
|
138
|
-
when "IE"
|
139
|
-
nil
|
140
|
-
else
|
141
|
-
string.to_s.strip
|
142
|
-
end
|
130
|
+
method = :"format_#{country_code.to_s.downcase}_postcode"
|
131
|
+
respond_to?(method) ? __send__(method, string) : string.to_s.strip
|
143
132
|
end
|
144
133
|
alias format_post_code format_postcode
|
145
134
|
alias format_zip format_postcode
|
@@ -148,6 +137,10 @@ module GoingPostal
|
|
148
137
|
|
149
138
|
# :stopdoc:
|
150
139
|
|
140
|
+
def format_ie_postcode(string)
|
141
|
+
nil
|
142
|
+
end
|
143
|
+
|
151
144
|
def format_gb_postcode(string)
|
152
145
|
out_code = string.to_s.upcase.delete(" \t\r\n")
|
153
146
|
in_code = out_code.slice!(-3, 3)
|
@@ -184,6 +177,11 @@ module GoingPostal
|
|
184
177
|
end
|
185
178
|
alias format_us_postcode format_us_zipcode
|
186
179
|
|
180
|
+
def format_ch_postcode(string)
|
181
|
+
string = string.to_s.delete(" \t\r\n")
|
182
|
+
string if string =~ /^[1-9][0-9]{3}$/
|
183
|
+
end
|
184
|
+
|
187
185
|
private
|
188
186
|
|
189
187
|
def get_args_for_format_postcode(args)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: going_postal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Post/zip code formatting and validation for the UK, US, CA and more.
|
15
15
|
email: mat@sourcetagsandcodes.com
|
@@ -44,7 +44,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
44
|
version: '0'
|
45
45
|
requirements: []
|
46
46
|
rubyforge_project:
|
47
|
-
rubygems_version: 1.8.
|
47
|
+
rubygems_version: 1.8.11
|
48
48
|
signing_key:
|
49
49
|
specification_version: 3
|
50
50
|
summary: Global post/zip code formatting and validation mixin
|