postcode_validation 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe8b4a803a5020000e3f4821f2cc88630325966e
4
- data.tar.gz: 857b89f459c5be246d1f40f5a93aa9455bd57e43
3
+ metadata.gz: b1b7365d65c023287b34e28abfc3cfe8b1db68f1
4
+ data.tar.gz: 9d6173ff64a453177a2785b00268ef0e05174377
5
5
  SHA512:
6
- metadata.gz: bd834808528eec1e1ed859aeb0402b64b648ac16b51b4a618ac7c8d68ebc7b95f740de0582d5e4a9d667be9ed87ebae0dcee6a74de0ad8eb778380ae57580cb9
7
- data.tar.gz: a037eb83a887540faa3a2f07cffc8702e759c8334a0c73c52f432db1c95b7f85c7f3665b87ac5d21b9cb54ccde3d7a09c2c9f4b2785088deb2a512187cc1bad2
6
+ metadata.gz: d9a0615d997a863c470ed6a9730d90f677be4dc45a10bd9c6b46e1c9532f962976007477ea23a1fdf2ce2878c7ce9f20964c3ae5e1aa53fc2cb0ec76a9640bb7
7
+ data.tar.gz: c3746ff38a800745b7a355155598132bf6bac61e8c46f6c2114ffa9acedeeae8bea91e9f3af45357745323a3ba1740652f91d8ac0c7449e5ac22c2aa1e5a8fc6
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # PostcodeValidation [![Build Status](https://travis-ci.org/madetech/postcode_validation.svg?branch=master)](https://travis-ci.org/madetech/postcode_validation)
2
2
 
3
3
  This gem provides basic postcode validation functionality which can be used in any application
4
-
4
+
5
5
  The specific validation that we perform goes beyond simple regex matching, to determine if the postcode actually exists.
6
-
7
- To do this it uses PCAPredict.com's Capture+ API.
6
+
7
+ To do this it uses PCAPredict.com's Capture+ API.
8
8
  By leveraging this service we are able to provide validation against country's postcode that they support.
9
-
9
+
10
10
  It also comes with out of the box plugins for:
11
11
 
12
12
  - Solidus
@@ -29,7 +29,7 @@ Or install it yourself as:
29
29
 
30
30
  ## Usage
31
31
 
32
- This gem relies on ```ENV['POSTCODE_ANYWHERE_KEY']``` being set to a valid PCAPredict service key for Capture+.
32
+ This gem relies on ```ENV['POSTCODE_ANYWHERE_KEY']``` being set to a valid PCAPredict service key for Capture+.
33
33
 
34
34
  One of the easiest ways to do this is to use the ```dotenv``` gem for this in your host application.
35
35
 
@@ -86,3 +86,4 @@ Key contributions:
86
86
 
87
87
  * [Craig J. Bass](https://github.com/craigjbass)
88
88
  * [Seb Ashton](https://github.com/sebashton)
89
+ * [Chris Blackburn](https://github.com/chrisblackburn)
@@ -1,18 +1,29 @@
1
1
  module PostcodeValidation
2
2
  module Domain
3
3
  class PotentialAddressMatch
4
- def initialize(text:)
4
+ def initialize(text:, description:)
5
5
  @text = text
6
+ @description = description
6
7
  end
7
8
 
8
9
  def postcode_matches?(postcode)
9
- letters_and_numbers_only(text).include?(letters_and_numbers_only(postcode.upcase))
10
+ normalised_postcode = letters_and_numbers_only(postcode.upcase)
11
+
12
+ text_includes?(normalised_postcode) || description_includes?(normalised_postcode)
10
13
  end
11
14
 
12
- attr_reader :text
15
+ attr_reader :text, :description
13
16
 
14
17
  private
15
18
 
19
+ def text_includes?(postcode)
20
+ letters_and_numbers_only(text).include?(postcode)
21
+ end
22
+
23
+ def description_includes?(postcode)
24
+ letters_and_numbers_only(description).include?(postcode)
25
+ end
26
+
16
27
  def letters_and_numbers_only(postcode)
17
28
  postcode.gsub(/[^0-9a-zA-Z]/, '')
18
29
  end
@@ -14,7 +14,8 @@ module PostcodeValidation
14
14
  response.map do |row|
15
15
  raise PCARequestError, error_message(row) if row.key?('Error')
16
16
 
17
- PostcodeValidation::Domain::PotentialAddressMatch.new(text: row['Text'])
17
+ PostcodeValidation::Domain::PotentialAddressMatch.new(text: row['Text'],
18
+ description: row['Description'])
18
19
  end
19
20
  end
20
21
 
@@ -27,7 +27,7 @@ module PostcodeValidation
27
27
  matches = potential_address_matches
28
28
  return false if matches.first.nil?
29
29
 
30
- matches.map { |address| return true if address.postcode_matches? postcode }
30
+ matches.each { |address| return true if address.postcode_matches? postcode }
31
31
  false
32
32
  end
33
33
 
@@ -1,3 +1,3 @@
1
1
  module PostcodeValidation
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postcode_validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig J. Bass
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-13 00:00:00.000000000 Z
11
+ date: 2017-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.13'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.13'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: vcr
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: webmock
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: dotenv
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description:
@@ -115,10 +115,10 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".env"
119
- - ".gitignore"
120
- - ".rspec"
121
- - ".travis.yml"
118
+ - .env
119
+ - .gitignore
120
+ - .rspec
121
+ - .travis.yml
122
122
  - Gemfile
123
123
  - LICENSE.txt
124
124
  - README.md
@@ -142,17 +142,17 @@ require_paths:
142
142
  - lib
143
143
  required_ruby_version: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ">="
145
+ - - '>='
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  required_rubygems_version: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - '>='
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  requirements: []
154
154
  rubyforge_project:
155
- rubygems_version: 2.5.1
155
+ rubygems_version: 2.0.14.1
156
156
  signing_key:
157
157
  specification_version: 4
158
158
  summary: Provides really basic postcode validation (intended for eCommerce platforms).