uk_postcode 0.0.2 → 0.0.3

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/Rakefile CHANGED
@@ -1,44 +1,8 @@
1
- require "rubygems"
2
- require "rake/gempackagetask"
3
1
  require "rake/testtask"
4
2
 
5
- task :default => [:test]
6
-
7
3
  Rake::TestTask.new("test") do |t|
8
- t.libs << "test"
9
4
  t.pattern = "test/**/test_*.rb"
10
5
  t.verbose = true
11
6
  end
12
7
 
13
8
  task :default => :test
14
-
15
- require "rake/testtask"
16
- Rake::TestTask.new do |t|
17
- t.libs << "test"
18
- t.test_files = FileList["test/**/*_test.rb"]
19
- t.verbose = true
20
- end
21
-
22
- spec = Gem::Specification.new do |s|
23
- s.name = "uk_postcode"
24
- s.version = "0.0.2"
25
- s.summary = "UK postcode parsing and validation"
26
- s.author = "Paul Battley"
27
- s.email = "pbattley@gmail.com"
28
-
29
- s.has_rdoc = true
30
-
31
- s.files = %w(Rakefile README.md) + Dir.glob("{bin,test,lib}/**/*") - ["test/samples/postzon.list"]
32
- s.executables = FileList["bin/**"].map { |f| File.basename(f) }
33
-
34
- s.require_paths = ["lib"]
35
-
36
- s.add_development_dependency("thoughtbot-shoulda")
37
- end
38
-
39
- Rake::GemPackageTask.new(spec) do |pkg|
40
- pkg.gem_spec = spec
41
- end
42
-
43
- desc 'Clear out generated packages'
44
- task :clean => [:clobber_package]
@@ -0,0 +1,3 @@
1
+ class UKPostcode
2
+ VERSION = "0.0.3"
3
+ end
data/lib/uk_postcode.rb CHANGED
@@ -1,12 +1,14 @@
1
1
  class UKPostcode
2
2
  MATCH = /\A
3
- ( [A-PR-UWYZ][A-Z]? ) # area
3
+ \s*
4
+ ( [A-PR-UWYZ01][A-Z01]? ) # area
4
5
  ( [0-9IO][0-9A-HJKMNPR-YIO]? ) # district
5
6
  (?:
6
- \s?
7
+ \s*
7
8
  ( [0-9IO] ) # sector
8
9
  ( [ABD-HJLNPQ-Z10]{2} ) # unit
9
10
  )?
11
+ \s*
10
12
  \Z/x
11
13
 
12
14
  attr_reader :raw
@@ -100,3 +102,5 @@ private
100
102
  s && s.tr("IO", "10")
101
103
  end
102
104
  end
105
+
106
+ require "uk_postcode/version"
@@ -33,4 +33,3 @@ SW1W 0DT
33
33
  TS1 3BA
34
34
  W1A 1AA
35
35
  W1F 9DJ
36
- GIR 0AA
@@ -1,3 +1,4 @@
1
+ # -*- coding: undecided -*-
1
2
  $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
2
3
  require "test/unit"
3
4
  require "shoulda"
@@ -164,10 +165,14 @@ class UKPostcodeTest < Test::Unit::TestCase
164
165
  end
165
166
 
166
167
  context "when used as a string" do
167
- should "normalise spacing" do
168
+ should "normalise spacing when no spacing has been used in the input" do
168
169
  assert_equal "W1A 1AA", UKPostcode.new("W1A1AA").norm
169
170
  end
170
171
 
172
+ should "normalise spacing when too much spacing has been used in the input" do
173
+ assert_equal "W1A 1AA", UKPostcode.new("W1A 1AA").norm
174
+ end
175
+
171
176
  should "convert case" do
172
177
  assert_equal "W1A 1AA", UKPostcode.new("w1a 1aa").norm
173
178
  end
@@ -175,6 +180,10 @@ class UKPostcodeTest < Test::Unit::TestCase
175
180
  should "ignore a missing incode" do
176
181
  assert_equal "W1A", UKPostcode.new("W1A").norm
177
182
  end
183
+
184
+ should "trim whitespace from start and end of the string" do
185
+ assert_equal "W1A 1AA", UKPostcode.new(" W1A 1AA ").norm
186
+ end
178
187
  end
179
188
 
180
189
  should "return original input for to_s" do
@@ -210,4 +219,24 @@ class UKPostcodeTest < Test::Unit::TestCase
210
219
  end
211
220
  end
212
221
  end
222
+
223
+ context "when digits are used instead of letters" do
224
+ context "in a full postcode" do
225
+ setup do
226
+ @postcode = UKPostcode.new("0X1 0AB")
227
+ end
228
+
229
+ should "be valid" do
230
+ assert @postcode.valid?
231
+ end
232
+
233
+ should "be full" do
234
+ assert @postcode.full?
235
+ end
236
+
237
+ should "normalise to letters" do
238
+ assert_equal "OX1 0AB", @postcode.norm
239
+ end
240
+ end
241
+ end
213
242
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uk_postcode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Battley
@@ -9,11 +9,11 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-09 00:00:00 +00:00
12
+ date: 2010-06-01 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: thoughtbot-shoulda
16
+ name: shoulda
17
17
  type: :development
18
18
  version_requirement:
19
19
  version_requirements: !ruby/object:Gem::Requirement
@@ -33,12 +33,13 @@ extra_rdoc_files: []
33
33
  files:
34
34
  - Rakefile
35
35
  - README.md
36
- - test/samples/wikipedia.list
37
36
  - test/test_samples.rb
38
37
  - test/test_uk_postcode.rb
38
+ - test/samples/wikipedia.list
39
39
  - lib/uk_postcode.rb
40
+ - lib/uk_postcode/version.rb
40
41
  has_rdoc: true
41
- homepage:
42
+ homepage: http://github.com/threedaymonk/uk_postcode
42
43
  licenses: []
43
44
 
44
45
  post_install_message: