paf 0.5.0 → 1.0.0
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 +5 -5
- data/.rubocop.yml +10 -1
- data/README.md +12 -12
- data/lib/paf/address.rb +39 -0
- data/lib/paf/array_formatter.rb +1 -1
- data/lib/paf/attribute.rb +1 -1
- data/lib/paf/core_ext/array.rb +1 -1
- data/lib/paf/core_ext/object.rb +1 -1
- data/lib/paf/core_ext/string.rb +33 -2
- data/lib/paf/formattable.rb +2 -1
- data/lib/paf/formatter.rb +2 -1
- data/lib/paf/hash_formatter.rb +1 -1
- data/lib/paf/lineable.rb +1 -1
- data/lib/paf/premises/common.rb +5 -1
- data/lib/paf/premises/rule000.rb +1 -1
- data/lib/paf/premises/rule001.rb +1 -1
- data/lib/paf/premises/rule010.rb +2 -5
- data/lib/paf/premises/rule011.rb +1 -1
- data/lib/paf/premises/rule100.rb +22 -0
- data/lib/paf/premises/rule101.rb +2 -1
- data/lib/paf/premises/rule110.rb +14 -4
- data/lib/paf/premises/rule111.rb +8 -2
- data/lib/paf/premises.rb +1 -1
- data/lib/paf/string_formatter.rb +1 -1
- data/lib/paf/thoroughfare_locality.rb +1 -1
- data/lib/paf/version.rb +2 -2
- data/lib/paf.rb +3 -35
- data/paf.gemspec +6 -7
- metadata +11 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 269cc685e003a0106f7a804214b07e9b092b0eaa5a83819683c7e7fe84262860
|
4
|
+
data.tar.gz: b07e3c71d8f2563c463ebc884a9519c45113227d377851b7971932b9007263b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67dc68a5c3f48cfbfb276d86dbbf9bcb9aa1e9cbee76a38fb2fae3c1807060ec8866daecad2ea8aca1182db343c85debe3cd74a1865013e15034b2b67485b1a1
|
7
|
+
data.tar.gz: e96a0558f766afd92fcd8a09110ca83ac4783c2293c3a05585a92d4f7e3002503f153cf3d69eb00cc0af14a16b3900b1d843aa5f2ff76a221b098b2b96cc74ac
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# PAF
|
2
2
|
|
3
|
-
A gem to format the elements of a Royal Mail Postcode Address File entry according to the rules described in the [Royal Mail Programmer's Guide Edition 7, Version
|
3
|
+
A gem to format the elements of a Royal Mail Postcode Address File entry according to the rules described in the [Royal Mail Programmer's Guide Edition 7, Version 6.2](https://www.poweredbypaf.com/wp-content/uploads/2024/11/Latest-Programmers_guide_Edition-7-Version-6-2.pdf)
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -20,10 +20,10 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
May be used to format the
|
23
|
+
May be used to format the Paf::Address elements as an array of strings:
|
24
24
|
|
25
25
|
```ruby
|
26
|
-
Paf.to_a(
|
26
|
+
Paf::Address.to_a(
|
27
27
|
building_name: '1-2',
|
28
28
|
thoroughfare_name: 'NURSERY',
|
29
29
|
thoroughfare_descriptor: 'LANE',
|
@@ -38,7 +38,7 @@ Paf.to_a(
|
|
38
38
|
Or as a hash of strings:
|
39
39
|
|
40
40
|
```ruby
|
41
|
-
Paf.to_h(
|
41
|
+
Paf::Address.to_h(
|
42
42
|
building_name: '1-2',
|
43
43
|
thoroughfare_name: 'NURSERY',
|
44
44
|
thoroughfare_descriptor: 'LANE',
|
@@ -57,7 +57,7 @@ Paf.to_h(
|
|
57
57
|
Or as a single string:
|
58
58
|
|
59
59
|
```ruby
|
60
|
-
Paf.to_s(
|
60
|
+
Paf::Address.to_s(
|
61
61
|
building_name: '1-2',
|
62
62
|
thoroughfare_name: 'NURSERY',
|
63
63
|
thoroughfare_descriptor: 'LANE',
|
@@ -69,10 +69,10 @@ Paf.to_s(
|
|
69
69
|
'1-2 NURSERY LANE, PENN, HIGH WYCOMBE. HP10 8LS'
|
70
70
|
```
|
71
71
|
|
72
|
-
Or from a Paf instance:
|
72
|
+
Or from a Paf::Address instance:
|
73
73
|
|
74
74
|
```ruby
|
75
|
-
|
75
|
+
address = Paf::Address.new(
|
76
76
|
building_name: '1-2',
|
77
77
|
thoroughfare_name: 'NURSERY',
|
78
78
|
thoroughfare_descriptor: 'LANE',
|
@@ -80,11 +80,11 @@ paf = Paf.new(
|
|
80
80
|
post_town: 'HIGH WYCOMBE',
|
81
81
|
postcode: 'HP10 8LS'
|
82
82
|
)
|
83
|
-
|
83
|
+
address.to_a
|
84
84
|
|
85
85
|
['1-2 NURSERY LANE', 'PENN', 'HIGH WYCOMBE', 'HP10 8LS']
|
86
86
|
|
87
|
-
|
87
|
+
address = Paf::Address.new(
|
88
88
|
building_name: '1-2',
|
89
89
|
thoroughfare_name: 'NURSERY',
|
90
90
|
thoroughfare_descriptor: 'LANE',
|
@@ -92,7 +92,7 @@ paf = Paf.new(
|
|
92
92
|
post_town: 'HIGH WYCOMBE',
|
93
93
|
postcode: 'HP10 8LS'
|
94
94
|
)
|
95
|
-
|
95
|
+
address.to_h
|
96
96
|
|
97
97
|
{
|
98
98
|
lines: ['1-2 NURSERY LANE', 'PENN'],
|
@@ -100,7 +100,7 @@ paf.to_h
|
|
100
100
|
postcode: 'HP10 8LS'
|
101
101
|
}
|
102
102
|
|
103
|
-
|
103
|
+
address = Paf::Address.new(
|
104
104
|
building_name: '1-2',
|
105
105
|
thoroughfare_name: 'NURSERY',
|
106
106
|
thoroughfare_descriptor: 'LANE',
|
@@ -108,7 +108,7 @@ paf = Paf.new(
|
|
108
108
|
post_town: 'HIGH WYCOMBE',
|
109
109
|
postcode: 'HP10 8LS'
|
110
110
|
)
|
111
|
-
|
111
|
+
address.to_s
|
112
112
|
|
113
113
|
'1-2 NURSERY LANE, PENN, HIGH WYCOMBE. HP10 8LS'
|
114
114
|
```
|
data/lib/paf/address.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'paf/attribute'
|
2
|
+
require 'paf/formattable'
|
3
|
+
|
4
|
+
module Paf
|
5
|
+
# Base class from the elements of a UK Royal Mail Postcode Address File entry
|
6
|
+
class Address
|
7
|
+
include Paf::Attribute
|
8
|
+
include Paf::Formattable
|
9
|
+
|
10
|
+
attr_accessor(*attrs)
|
11
|
+
private(*attrs.map { |attr| "#{attr}=" }) # rubocop:disable Style/AccessModifierDeclarations
|
12
|
+
|
13
|
+
def initialize(args)
|
14
|
+
args.each { |k, v| send("#{k}=", v) }
|
15
|
+
end
|
16
|
+
|
17
|
+
# PO Box number prepended with the string PO BOX
|
18
|
+
def po_box
|
19
|
+
"PO BOX #{po_box_number}" unless po_box_number.vacant?
|
20
|
+
end
|
21
|
+
|
22
|
+
# Dependent thoroughfare name and descriptor
|
23
|
+
def dependent_thoroughfare
|
24
|
+
concatenated(self.class.dependent_thoroughfare_attrs)
|
25
|
+
end
|
26
|
+
|
27
|
+
# Thoroughfare name and descriptor
|
28
|
+
def thoroughfare
|
29
|
+
concatenated(self.class.thoroughfare_attrs)
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def concatenated(attrs)
|
35
|
+
value = attrs.map { |attr| send(attr) }.condense(' ')
|
36
|
+
value unless value.vacant?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/paf/array_formatter.rb
CHANGED
data/lib/paf/attribute.rb
CHANGED
data/lib/paf/core_ext/array.rb
CHANGED
data/lib/paf/core_ext/object.rb
CHANGED
data/lib/paf/core_ext/string.rb
CHANGED
@@ -1,13 +1,32 @@
|
|
1
|
-
|
1
|
+
module Paf
|
2
2
|
module CoreExt
|
3
3
|
# Extend the core String class with PAF specific processing
|
4
4
|
module String
|
5
|
+
def exception_i?
|
6
|
+
!/\A\d.*\d\z/.match(self).nil?
|
7
|
+
end
|
8
|
+
|
9
|
+
def exception_ii?
|
10
|
+
!/\A\d[A-Za-z]\z|\A\d.*\d[A-Za-z]\z/.match(self).nil?
|
11
|
+
end
|
12
|
+
|
13
|
+
def exception_iii?
|
14
|
+
!/\A\S\z/.match(self).nil?
|
15
|
+
end
|
16
|
+
|
5
17
|
def exception?
|
6
18
|
!/^(.|[\d][[:alpha:]]|[\d].*?[\d][[:alpha:]]?)$/.match(self).nil?
|
7
19
|
end
|
8
20
|
|
9
21
|
def split_exception?
|
10
|
-
last_word.
|
22
|
+
(last_word.exception_i? || last_word.exception_ii?) &&
|
23
|
+
/^\d+$/.match(last_word).nil? &&
|
24
|
+
!but_last_word.known_building_type? &&
|
25
|
+
!penultimate_word.known_split_building_type?
|
26
|
+
end
|
27
|
+
|
28
|
+
def penultimate_word
|
29
|
+
but_last_word.last_word
|
11
30
|
end
|
12
31
|
|
13
32
|
def last_word
|
@@ -17,6 +36,18 @@ class Paf
|
|
17
36
|
def but_last_word
|
18
37
|
self[0...rindex(' ')]
|
19
38
|
end
|
39
|
+
|
40
|
+
def known_building_type?
|
41
|
+
[
|
42
|
+
'BACK OF', 'BLOCK', 'BLOCKS', 'BUILDING', 'MAISONETTE', 'MAISONETTES', 'REAR OF',
|
43
|
+
'SHOP', 'SHOPS', 'STALL', 'STALLS', 'SUITE', 'SUITES', 'UNIT', 'UNITS',
|
44
|
+
'FLAT', 'FLATS', 'PO BOX'
|
45
|
+
].include?(self)
|
46
|
+
end
|
47
|
+
|
48
|
+
def known_split_building_type?
|
49
|
+
['UNIT'].include?(self)
|
50
|
+
end
|
20
51
|
end
|
21
52
|
end
|
22
53
|
end
|
data/lib/paf/formattable.rb
CHANGED
@@ -2,7 +2,7 @@ require 'paf/array_formatter'
|
|
2
2
|
require 'paf/hash_formatter'
|
3
3
|
require 'paf/string_formatter'
|
4
4
|
|
5
|
-
|
5
|
+
module Paf
|
6
6
|
# Processing to format a PAF entry
|
7
7
|
module Formattable
|
8
8
|
attr_accessor :formatter, :concatenation_indicator
|
@@ -32,6 +32,7 @@ class Paf
|
|
32
32
|
|
33
33
|
def to_s(*args)
|
34
34
|
return super if args.empty?
|
35
|
+
|
35
36
|
new(args[0]).to_s
|
36
37
|
end
|
37
38
|
end
|
data/lib/paf/formatter.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'paf/lineable'
|
2
2
|
|
3
|
-
|
3
|
+
module Paf
|
4
4
|
# Processing to format a PAF entry
|
5
5
|
class Formatter
|
6
6
|
def self.format(paf)
|
@@ -15,6 +15,7 @@ class Paf
|
|
15
15
|
def method_missing(method, *args)
|
16
16
|
return @paf.send(method, *args) if @paf.respond_to?(method)
|
17
17
|
return @paf.class.send(method, *args) if @paf.class.respond_to?(method)
|
18
|
+
|
18
19
|
super
|
19
20
|
end
|
20
21
|
|
data/lib/paf/hash_formatter.rb
CHANGED
data/lib/paf/lineable.rb
CHANGED
data/lib/paf/premises/common.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
module Paf
|
2
2
|
module Premises
|
3
3
|
# Common processing for premises elements of a PAF entry
|
4
4
|
module Common
|
@@ -19,6 +19,10 @@ class Paf
|
|
19
19
|
def name_and_thoroughfare_or_locality
|
20
20
|
"#{building_name} #{first_thoroughfare_or_locality}"
|
21
21
|
end
|
22
|
+
|
23
|
+
def name_last_word_and_thoroughfare_or_locality
|
24
|
+
"#{building_name.last_word} #{first_thoroughfare_or_locality}"
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
24
28
|
end
|
data/lib/paf/premises/rule000.rb
CHANGED
data/lib/paf/premises/rule001.rb
CHANGED
data/lib/paf/premises/rule010.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
|
1
|
+
module Paf
|
2
2
|
module Premises
|
3
3
|
# Processing for premises elements of a PAF entry under Rule 3
|
4
4
|
module Rule010
|
5
5
|
def premises
|
6
6
|
return [name_and_thoroughfare_or_locality] if building_name.exception?
|
7
|
+
|
7
8
|
if building_name.split_exception?
|
8
9
|
return [
|
9
10
|
building_name.but_last_word,
|
@@ -18,10 +19,6 @@ class Paf
|
|
18
19
|
def premises_includes_first_thoroughfare_or_locality?
|
19
20
|
building_name.exception? || building_name.split_exception?
|
20
21
|
end
|
21
|
-
|
22
|
-
def name_last_word_and_thoroughfare_or_locality
|
23
|
-
"#{building_name.last_word} #{first_thoroughfare_or_locality}"
|
24
|
-
end
|
25
22
|
end
|
26
23
|
end
|
27
24
|
end
|
data/lib/paf/premises/rule011.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
module Paf
|
2
|
+
module Premises
|
3
|
+
# Processing for premises elements of a PAF entry under Rule X
|
4
|
+
module Rule100
|
5
|
+
def premises
|
6
|
+
return [sub_name_and_thoroughfare_or_locality] if sub_building_name.exception?
|
7
|
+
|
8
|
+
[sub_building_name]
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def premises_includes_first_thoroughfare_or_locality?
|
14
|
+
sub_building_name.exception?
|
15
|
+
end
|
16
|
+
|
17
|
+
def sub_name_and_thoroughfare_or_locality
|
18
|
+
"#{sub_building_name} #{first_thoroughfare_or_locality}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/paf/premises/rule101.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
|
1
|
+
module Paf
|
2
2
|
module Premises
|
3
3
|
# Processing for premises elements of a PAF entry under Rule 5
|
4
4
|
module Rule101
|
5
5
|
def premises
|
6
6
|
return [number_sub_name_and_thoroughfare_or_locality] if concatenate?
|
7
|
+
|
7
8
|
[sub_building_name, number_and_thoroughfare_or_locality]
|
8
9
|
end
|
9
10
|
|
data/lib/paf/premises/rule110.rb
CHANGED
@@ -1,18 +1,28 @@
|
|
1
|
-
|
1
|
+
module Paf
|
2
2
|
module Premises
|
3
3
|
# Processing for premises elements of a PAF entry under Rule 6
|
4
4
|
module Rule110
|
5
5
|
def premises
|
6
|
+
if sub_building_name.exception? && building_name.split_exception?
|
7
|
+
return [sub_and_building_name_but_last_word, name_last_word_and_thoroughfare_or_locality]
|
8
|
+
end
|
6
9
|
return [sub_name_and_name] if sub_building_name.exception?
|
7
|
-
return [sub_building_name, name_and_thoroughfare_or_locality] if
|
8
|
-
|
10
|
+
return [sub_building_name, name_and_thoroughfare_or_locality] if building_name.exception?
|
11
|
+
if building_name.split_exception?
|
12
|
+
return [sub_building_name, building_name.but_last_word, name_last_word_and_thoroughfare_or_locality]
|
13
|
+
end
|
14
|
+
|
9
15
|
[sub_building_name, building_name]
|
10
16
|
end
|
11
17
|
|
12
18
|
private
|
13
19
|
|
14
20
|
def premises_includes_first_thoroughfare_or_locality?
|
15
|
-
!sub_building_name.exception? && building_name.exception?
|
21
|
+
building_name.split_exception? || (!sub_building_name.exception? && building_name.exception?)
|
22
|
+
end
|
23
|
+
|
24
|
+
def sub_and_building_name_but_last_word
|
25
|
+
"#{sub_building_name} #{building_name.but_last_word}"
|
16
26
|
end
|
17
27
|
end
|
18
28
|
end
|
data/lib/paf/premises/rule111.rb
CHANGED
@@ -1,17 +1,23 @@
|
|
1
|
-
|
1
|
+
module Paf
|
2
2
|
module Premises
|
3
3
|
# Processing for premises elements of a PAF entry under Rule 7
|
4
4
|
module Rule111
|
5
5
|
def premises
|
6
|
+
return [sub_name_comma_name] if building_number.zero?
|
6
7
|
return [sub_name_and_name, number_and_thoroughfare_or_locality] if
|
7
8
|
sub_building_name.exception?
|
9
|
+
|
8
10
|
[sub_building_name, building_name, number_and_thoroughfare_or_locality]
|
9
11
|
end
|
10
12
|
|
11
13
|
private
|
12
14
|
|
13
15
|
def premises_includes_first_thoroughfare_or_locality?
|
14
|
-
|
16
|
+
!building_number.zero?
|
17
|
+
end
|
18
|
+
|
19
|
+
def sub_name_comma_name
|
20
|
+
"#{sub_building_name}, #{building_name}"
|
15
21
|
end
|
16
22
|
end
|
17
23
|
end
|
data/lib/paf/premises.rb
CHANGED
data/lib/paf/string_formatter.rb
CHANGED
data/lib/paf/version.rb
CHANGED
data/lib/paf.rb
CHANGED
@@ -1,41 +1,9 @@
|
|
1
1
|
require 'paf/version'
|
2
|
-
require 'paf/
|
3
|
-
require 'paf/formattable'
|
2
|
+
require 'paf/address'
|
4
3
|
require 'paf/core_ext/object'
|
5
4
|
require 'paf/core_ext/string'
|
6
5
|
require 'paf/core_ext/array'
|
7
6
|
|
8
|
-
# Base
|
9
|
-
|
10
|
-
include Paf::Attribute
|
11
|
-
include Paf::Formattable
|
12
|
-
|
13
|
-
attr_accessor(*attrs)
|
14
|
-
private(*attrs.map { |attr| "#{attr}=" })
|
15
|
-
|
16
|
-
def initialize(args)
|
17
|
-
args.each { |k, v| send("#{k}=", v) }
|
18
|
-
end
|
19
|
-
|
20
|
-
# PO Box number prepended with the string PO BOX
|
21
|
-
def po_box
|
22
|
-
"PO BOX #{po_box_number}" unless po_box_number.vacant?
|
23
|
-
end
|
24
|
-
|
25
|
-
# Dependent thoroughfare name and descriptor
|
26
|
-
def dependent_thoroughfare
|
27
|
-
concatenated(self.class.dependent_thoroughfare_attrs)
|
28
|
-
end
|
29
|
-
|
30
|
-
# Thoroughfare name and descriptor
|
31
|
-
def thoroughfare
|
32
|
-
concatenated(self.class.thoroughfare_attrs)
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def concatenated(attrs)
|
38
|
-
value = attrs.map { |attr| send(attr) }.condense(' ')
|
39
|
-
value unless value.vacant?
|
40
|
-
end
|
7
|
+
# Base module for UK Royal Mail Postcode Address File processing
|
8
|
+
module Paf
|
41
9
|
end
|
data/paf.gemspec
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
4
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
3
|
require 'paf/version'
|
6
4
|
|
@@ -12,12 +10,12 @@ Gem::Specification.new do |spec|
|
|
12
10
|
spec.homepage = 'https://github.com/drabjay/paf'
|
13
11
|
|
14
12
|
spec.summary = 'Royal Mail Postcode Address File (PAF) Formatter'
|
15
|
-
spec.description = <<-
|
13
|
+
spec.description = <<-DESC
|
16
14
|
A gem to format the elements of a Royal Mail Postcode Address File entry
|
17
15
|
according to the rules described in the Royal Mail Programmer's Guide
|
18
|
-
Edition 7, Version
|
19
|
-
(
|
20
|
-
|
16
|
+
Edition 7, Version 6.2
|
17
|
+
(https://www.poweredbypaf.com/wp-content/uploads/2024/11/Latest-Programmers_guide_Edition-7-Version-6-2.pdf)
|
18
|
+
DESC
|
21
19
|
spec.license = 'MIT'
|
22
20
|
|
23
21
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -27,6 +25,7 @@ Gem::Specification.new do |spec|
|
|
27
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
26
|
spec.require_paths = ['lib']
|
29
27
|
|
28
|
+
spec.required_ruby_version = '>= 2.4'
|
30
29
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
31
30
|
spec.add_development_dependency 'rake', '~> 10.5'
|
32
31
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Bard
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -83,8 +83,8 @@ dependencies:
|
|
83
83
|
description: |2
|
84
84
|
A gem to format the elements of a Royal Mail Postcode Address File entry
|
85
85
|
according to the rules described in the Royal Mail Programmer's Guide
|
86
|
-
Edition 7, Version
|
87
|
-
(
|
86
|
+
Edition 7, Version 6.2
|
87
|
+
(https://www.poweredbypaf.com/wp-content/uploads/2024/11/Latest-Programmers_guide_Edition-7-Version-6-2.pdf)
|
88
88
|
email:
|
89
89
|
- johnbard@globalnet.co.uk
|
90
90
|
executables: []
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- bin/console
|
104
104
|
- bin/setup
|
105
105
|
- lib/paf.rb
|
106
|
+
- lib/paf/address.rb
|
106
107
|
- lib/paf/array_formatter.rb
|
107
108
|
- lib/paf/attribute.rb
|
108
109
|
- lib/paf/core_ext/array.rb
|
@@ -118,6 +119,7 @@ files:
|
|
118
119
|
- lib/paf/premises/rule001.rb
|
119
120
|
- lib/paf/premises/rule010.rb
|
120
121
|
- lib/paf/premises/rule011.rb
|
122
|
+
- lib/paf/premises/rule100.rb
|
121
123
|
- lib/paf/premises/rule101.rb
|
122
124
|
- lib/paf/premises/rule110.rb
|
123
125
|
- lib/paf/premises/rule111.rb
|
@@ -129,7 +131,7 @@ homepage: https://github.com/drabjay/paf
|
|
129
131
|
licenses:
|
130
132
|
- MIT
|
131
133
|
metadata: {}
|
132
|
-
post_install_message:
|
134
|
+
post_install_message:
|
133
135
|
rdoc_options: []
|
134
136
|
require_paths:
|
135
137
|
- lib
|
@@ -137,16 +139,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
139
|
requirements:
|
138
140
|
- - ">="
|
139
141
|
- !ruby/object:Gem::Version
|
140
|
-
version: '
|
142
|
+
version: '2.4'
|
141
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
144
|
requirements:
|
143
145
|
- - ">="
|
144
146
|
- !ruby/object:Gem::Version
|
145
147
|
version: '0'
|
146
148
|
requirements: []
|
147
|
-
|
148
|
-
|
149
|
-
signing_key:
|
149
|
+
rubygems_version: 3.0.3
|
150
|
+
signing_key:
|
150
151
|
specification_version: 4
|
151
152
|
summary: Royal Mail Postcode Address File (PAF) Formatter
|
152
153
|
test_files: []
|