defra_ruby_area 0.2.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63615a29ec74ab527f83b3e5a91d5639e17dd766
4
- data.tar.gz: 15e541434144213b3d2b1df0be76b13bfec05ce0
3
+ metadata.gz: 0c70a4243bf5fb3a988ebf2dee7ff7757758f605
4
+ data.tar.gz: 6730c29aedc4227152101469d4325c36024f9522
5
5
  SHA512:
6
- metadata.gz: 9114d14626f31ce84942cb6aa68e7f22577a1ab9686ea8d839f40173b6da456d726f76d57c1dced03af50246cb0593eb311bb05d4ab4abd6c51dc34f8ce4cd27
7
- data.tar.gz: 4a7ee038f132af0f00c6fd428e8f843dd6b0706bfe40ff6d2fbcf34b6f8ade0a2c650c48351463c43228ebc891fe9ff01415e95fffa83b80ec1548b7aa32ea4e
6
+ metadata.gz: 85798b2577feb39b9853390f0bf243f271c4d7657a45769d88a1a35fea8cd38202b2b7a2a2464ee66ddda00207edf659d21c0b3a9adfed6e56fbc0fe430873b4
7
+ data.tar.gz: bd9622f05d43ae590337b841d9e99b4e7e82ab327014ef2b6642fa87746daa085dbeb6b4640f82aac6f89d8c9245c15413a770c5a868a2d84c89e06f703ad9c3
data/README.md CHANGED
@@ -40,7 +40,7 @@ response.error
40
40
  If the call is successful (the query did not error and a match was found) then
41
41
 
42
42
  - `successful?()` will be `true`
43
- - `area` will contain the long name of the matching administrative boundary
43
+ - `area` will contain an instance of `DefraRuby::Area::Area`. It contains the code, short name and long name of the matching administrative boundary
44
44
  - `error` will be `nil`
45
45
 
46
46
  If the call is unsuccessful (the query errored or no match was found) then
@@ -49,9 +49,9 @@ If the call is unsuccessful (the query errored or no match was found) then
49
49
  - `area` will be `nil`
50
50
  - `error` will contain the error
51
51
 
52
- If its a runtime error, or an error when calling the WFS `error` will contain whatever error was raised.
52
+ If it's a runtime error, or an error when calling the WFS `error` will contain whatever error was raised.
53
53
 
54
- If its because no match was found `error` will contain an instance of `DefraRuby::Area::NoMatchError`.
54
+ If it's because no match was found `error` will contain an instance of `DefraRuby::Area::NoMatchError`.
55
55
 
56
56
  ### Environment Agency and Natural England Public Face Areas
57
57
 
@@ -62,7 +62,7 @@ easting = 408_602.61
62
62
  northing = 257_535.31
63
63
  response = DefraRuby::Area::PublicFaceAreaService.run(easting, northing)
64
64
 
65
- puts response.area if response.successful? # West Midlands
65
+ puts response.area.long_name if response.successful? # West Midlands
66
66
  ```
67
67
 
68
68
  ### Water Management Areas
@@ -74,7 +74,7 @@ easting = 408_602.61
74
74
  northing = 257_535.31
75
75
  response = DefraRuby::Area::WaterManagementAreaService.run(easting, northing)
76
76
 
77
- puts response.area if response.successful? # Staffordshire Warwickshire and West Midlands
77
+ puts response.area.long_name if response.successful? # Staffordshire Warwickshire and West Midlands
78
78
  ```
79
79
 
80
80
  ## Web Feature Services
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DefraRuby
4
+ module Area
5
+ class Area
6
+ attr_reader :code, :long_name, :short_name
7
+
8
+ def initialize(code, long_name, short_name)
9
+ @code = code
10
+ @long_name = long_name
11
+ @short_name = short_name
12
+ end
13
+
14
+ def matched?
15
+ "#{@code}#{@long_name}#{@short_name}" != ""
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -32,7 +32,7 @@ module DefraRuby
32
32
  timeout: DefraRuby::Area.configuration.timeout
33
33
  )
34
34
  area = parse_xml(response)
35
- raise NoMatchError if area.nil? || area == ""
35
+ raise NoMatchError unless area.matched?
36
36
 
37
37
  { area: area }
38
38
  end
@@ -44,12 +44,16 @@ module DefraRuby
44
44
 
45
45
  def parse_xml(response)
46
46
  xml = Nokogiri::XML(response)
47
- xml.xpath(response_xml_path).text
47
+ Area.new(
48
+ xml.xpath(response_xml_path(:code)).text,
49
+ xml.xpath(response_xml_path(:long_name)).text,
50
+ xml.xpath(response_xml_path(:short_name)).text
51
+ )
48
52
  end
49
53
 
50
54
  # XML path to the value we wish to extract in the WFS query response.
51
- def response_xml_path
52
- "//wfs:FeatureCollection/gml:featureMember/#{type_name}/ms:long_name"
55
+ def response_xml_path(property)
56
+ "//wfs:FeatureCollection/gml:featureMember/#{type_name}/ms:#{property}"
53
57
  end
54
58
 
55
59
  # Domain where the WFS is hosted
@@ -126,10 +130,10 @@ module DefraRuby
126
130
  # https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType
127
131
  #
128
132
  # In our case the administrative boundary features contain a number of
129
- # properties, but we are only interested in +long_name+ hence we specify
130
- # it to reduce the size of the response.
133
+ # properties, but we are only interested in +code+, +long_name+ and
134
+ # +short_name+.
131
135
  def property_name
132
- "long_name"
136
+ "code,long_name,short_name"
133
137
  end
134
138
 
135
139
  # SRS stands for Spatial Reference System. It can also be known as a
@@ -2,6 +2,6 @@
2
2
 
3
3
  module DefraRuby
4
4
  module Area
5
- VERSION = "0.2.1"
5
+ VERSION = "1.0.0"
6
6
  end
7
7
  end
@@ -3,6 +3,7 @@
3
3
  require_relative "area/configuration"
4
4
  require_relative "area/no_match_error"
5
5
  require_relative "area/response"
6
+ require_relative "area/area"
6
7
 
7
8
  require_relative "area/services/base_area_service"
8
9
  require_relative "area/services/public_face_area_service"
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E,%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=long_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
5
+ uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E,%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=code,long_name,short_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.5.0 x86_64) ruby/2.4.2p198
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
16
  Host:
17
17
  - environment.data.gov.uk
18
18
  response:
@@ -23,7 +23,7 @@ http_interactions:
23
23
  Server:
24
24
  - nginx
25
25
  Date:
26
- - Mon, 05 Aug 2019 16:31:59 GMT
26
+ - Fri, 09 Aug 2019 17:08:26 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
@@ -45,5 +45,5 @@ http_interactions:
45
45
  <ogc:ServiceException><![CDATA[Operator 'Intersects' can't parse geometry.]]></ogc:ServiceException>
46
46
  </ogc:ServiceExceptionReport>
47
47
  http_version:
48
- recorded_at: Mon, 05 Aug 2019 16:31:59 GMT
48
+ recorded_at: Fri, 09 Aug 2019 17:08:26 GMT
49
49
  recorded_with: VCR 4.0.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E301233.0,221592.0%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=long_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
5
+ uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E301233.0,221592.0%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=code,long_name,short_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.5.0 x86_64) ruby/2.4.2p198
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
16
  Host:
17
17
  - environment.data.gov.uk
18
18
  response:
@@ -23,7 +23,7 @@ http_interactions:
23
23
  Server:
24
24
  - nginx
25
25
  Date:
26
- - Mon, 05 Aug 2019 16:31:58 GMT
26
+ - Fri, 09 Aug 2019 17:08:26 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
@@ -48,5 +48,5 @@ http_interactions:
48
48
  </gml:boundedBy>
49
49
  </wfs:FeatureCollection>
50
50
  http_version:
51
- recorded_at: Mon, 05 Aug 2019 16:31:59 GMT
51
+ recorded_at: Fri, 09 Aug 2019 17:08:26 GMT
52
52
  recorded_with: VCR 4.0.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E408602.61,257535.31%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=long_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
5
+ uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E408602.61,257535.31%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=code,long_name,short_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.5.0 x86_64) ruby/2.4.2p198
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
16
  Host:
17
17
  - environment.data.gov.uk
18
18
  response:
@@ -23,11 +23,11 @@ http_interactions:
23
23
  Server:
24
24
  - nginx
25
25
  Date:
26
- - Mon, 05 Aug 2019 16:31:58 GMT
26
+ - Fri, 09 Aug 2019 17:08:33 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
30
- - '1613'
30
+ - '1693'
31
31
  Connection:
32
32
  - keep-alive
33
33
  Cache-Control:
@@ -50,11 +50,13 @@ http_interactions:
50
50
  <ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas fid="Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas.23">
51
51
  <ms:OBJECTID>23</ms:OBJECTID>
52
52
  <ms:long_name>West Midlands</ms:long_name>
53
+ <ms:short_name>West Midlands</ms:short_name>
54
+ <ms:code>WMD</ms:code>
53
55
  <ms:st_area_shape_>14543741870.84492</ms:st_area_shape_>
54
56
  <ms:st_perimeter_shape_>1043376.795941756</ms:st_perimeter_shape_>
55
57
  </ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas>
56
58
  </gml:featureMember>
57
59
  </wfs:FeatureCollection>
58
60
  http_version:
59
- recorded_at: Mon, 05 Aug 2019 16:31:58 GMT
61
+ recorded_at: Fri, 09 Aug 2019 17:08:34 GMT
60
62
  recorded_with: VCR 4.0.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E,%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=long_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
5
+ uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E,%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=code,long_name,short_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.5.0 x86_64) ruby/2.4.2p198
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
16
  Host:
17
17
  - environment.data.gov.uk
18
18
  response:
@@ -23,7 +23,7 @@ http_interactions:
23
23
  Server:
24
24
  - nginx
25
25
  Date:
26
- - Mon, 05 Aug 2019 16:31:54 GMT
26
+ - Fri, 09 Aug 2019 17:08:21 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
@@ -45,5 +45,5 @@ http_interactions:
45
45
  <ogc:ServiceException><![CDATA[Operator 'Intersects' can't parse geometry.]]></ogc:ServiceException>
46
46
  </ogc:ServiceExceptionReport>
47
47
  http_version:
48
- recorded_at: Mon, 05 Aug 2019 16:31:54 GMT
48
+ recorded_at: Fri, 09 Aug 2019 17:08:21 GMT
49
49
  recorded_with: VCR 4.0.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E301233.0,221592.0%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=long_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
5
+ uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E301233.0,221592.0%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=code,long_name,short_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.5.0 x86_64) ruby/2.4.2p198
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
16
  Host:
17
17
  - environment.data.gov.uk
18
18
  response:
@@ -23,7 +23,7 @@ http_interactions:
23
23
  Server:
24
24
  - nginx
25
25
  Date:
26
- - Mon, 05 Aug 2019 16:31:57 GMT
26
+ - Fri, 09 Aug 2019 17:08:14 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
@@ -48,5 +48,5 @@ http_interactions:
48
48
  </gml:boundedBy>
49
49
  </wfs:FeatureCollection>
50
50
  http_version:
51
- recorded_at: Mon, 05 Aug 2019 16:31:57 GMT
51
+ recorded_at: Fri, 09 Aug 2019 17:08:14 GMT
52
52
  recorded_with: VCR 4.0.0
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E408602.61,257535.31%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=long_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
5
+ uri: https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?Filter=(%3CFilter%3E%3CIntersects%3E%3CPropertyName%3ESHAPE%3C/PropertyName%3E%3Cgml:Point%3E%3Cgml:coordinates%3E408602.61,257535.31%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Intersects%3E%3C/Filter%3E)&REQUEST=GetFeature&SERVICE=WFS&SRSName=EPSG:27700&VERSION=1.0.0&propertyName=code,long_name,short_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -12,7 +12,7 @@ http_interactions:
12
12
  Accept-Encoding:
13
13
  - gzip, deflate
14
14
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.5.0 x86_64) ruby/2.4.2p198
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
16
  Host:
17
17
  - environment.data.gov.uk
18
18
  response:
@@ -23,11 +23,11 @@ http_interactions:
23
23
  Server:
24
24
  - nginx
25
25
  Date:
26
- - Mon, 05 Aug 2019 16:31:57 GMT
26
+ - Fri, 09 Aug 2019 17:08:14 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
30
- - '1434'
30
+ - '1530'
31
31
  Connection:
32
32
  - keep-alive
33
33
  Cache-Control:
@@ -50,11 +50,13 @@ http_interactions:
50
50
  <ms:Administrative_Boundaries_Water_Management_Areas fid="Administrative_Boundaries_Water_Management_Areas.15">
51
51
  <ms:OBJECTID>15</ms:OBJECTID>
52
52
  <ms:long_name>Staffordshire Warwickshire and West Midlands</ms:long_name>
53
+ <ms:short_name>Staffs Warks and West Mids</ms:short_name>
54
+ <ms:code>STWKWM</ms:code>
53
55
  <ms:st_area_shape_>6460280400.1</ms:st_area_shape_>
54
56
  <ms:st_perimeter_shape_>759189.708848595</ms:st_perimeter_shape_>
55
57
  </ms:Administrative_Boundaries_Water_Management_Areas>
56
58
  </gml:featureMember>
57
59
  </wfs:FeatureCollection>
58
60
  http_version:
59
- recorded_at: Mon, 05 Aug 2019 16:31:58 GMT
61
+ recorded_at: Fri, 09 Aug 2019 17:08:14 GMT
60
62
  recorded_with: VCR 4.0.0
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ module DefraRuby
6
+ module Area
7
+ RSpec.describe Area do
8
+ describe "#matched?" do
9
+ context "when no attributes are populated" do
10
+ let(:subject) { described_class.new(nil, nil, nil) }
11
+
12
+ it "returns false" do
13
+ expect(subject.matched?).to eq(false)
14
+ end
15
+ end
16
+ end
17
+
18
+ describe "#matched?" do
19
+ context "when at least one attribute is populated" do
20
+ let(:subject) { described_class.new("foo", nil, nil) }
21
+
22
+ it "returns true" do
23
+ expect(subject.matched?).to eq(true)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -6,7 +6,7 @@ module DefraRuby
6
6
  module Area
7
7
  RSpec.describe Response do
8
8
  subject(:response) { described_class.new(response_exe) }
9
- let(:successful) { -> { { area: "Gallifrey" } } }
9
+ let(:successful) { -> { { area: Area.new("GFY", "Planet Gallifrey", "Gallifrey") } } }
10
10
  let(:errored) { -> { raise "Boom!" } }
11
11
 
12
12
  describe "#successful?" do
@@ -40,7 +40,8 @@ module DefraRuby
40
40
  let(:response_exe) { successful }
41
41
 
42
42
  it "returns an area" do
43
- expect(response.area).to eq("Gallifrey")
43
+ expect(response.area).to be_instance_of(Area)
44
+ expect(response.area.short_name).to eq("Gallifrey")
44
45
  end
45
46
  end
46
47
  end
@@ -18,7 +18,7 @@ module DefraRuby
18
18
  response = described_class.run(easting, northing)
19
19
  expect(response).to be_a(Response)
20
20
  expect(response.successful?).to eq(true)
21
- expect(response.area).to eq("West Midlands")
21
+ expect(response.area.long_name).to eq("West Midlands")
22
22
  end
23
23
 
24
24
  end
@@ -18,7 +18,7 @@ module DefraRuby
18
18
  response = described_class.run(easting, northing)
19
19
  expect(response).to be_a(Response)
20
20
  expect(response.successful?).to eq(true)
21
- expect(response.area).to eq("Staffordshire Warwickshire and West Midlands")
21
+ expect(response.area.long_name).to eq("Staffordshire Warwickshire and West Midlands")
22
22
  end
23
23
 
24
24
  end
data/spec/examples.txt ADDED
@@ -0,0 +1,24 @@
1
+ example_id | status | run_time |
2
+ -------------------------------------------------------------------------------- | ------ | --------------- |
3
+ ./spec/defra_ruby/area/area_spec.rb[1:1:1:1] | passed | 0.00027 seconds |
4
+ ./spec/defra_ruby/area/area_spec.rb[1:2:1:1] | passed | 0.00024 seconds |
5
+ ./spec/defra_ruby/area/configuration_spec.rb[1:1] | passed | 0.00337 seconds |
6
+ ./spec/defra_ruby/area/response_spec.rb[1:1:1:1] | passed | 0.00025 seconds |
7
+ ./spec/defra_ruby/area/response_spec.rb[1:1:2:1] | passed | 0.00412 seconds |
8
+ ./spec/defra_ruby/area/response_spec.rb[1:2:1:1] | passed | 0.00017 seconds |
9
+ ./spec/defra_ruby/area/response_spec.rb[1:2:2:1] | passed | 0.00725 seconds |
10
+ ./spec/defra_ruby/area/response_spec.rb[1:3:1:1] | passed | 0.0029 seconds |
11
+ ./spec/defra_ruby/area/response_spec.rb[1:3:2:1] | passed | 0.00023 seconds |
12
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:1:1] | passed | 0.03685 seconds |
13
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:2:1:1] | passed | 0.06383 seconds |
14
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:2:2:1] | passed | 0.03793 seconds |
15
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:3:1:1] | passed | 0.06819 seconds |
16
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:3:2:1] | passed | 0.02928 seconds |
17
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:1:1] | passed | 0.03675 seconds |
18
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:2:1:1] | passed | 0.03188 seconds |
19
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:2:2:1] | passed | 0.03399 seconds |
20
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:3:1:1] | passed | 0.02733 seconds |
21
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:3:2:1] | passed | 0.04418 seconds |
22
+ ./spec/defra_ruby/area_spec.rb[1:1:1] | passed | 0.00637 seconds |
23
+ ./spec/defra_ruby/area_spec.rb[1:2:1:1] | passed | 0.00344 seconds |
24
+ ./spec/defra_ruby/area_spec.rb[1:2:2:1] | passed | 0.00018 seconds |
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: defra_ruby_area
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Defra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-06 00:00:00.000000000 Z
11
+ date: 2019-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -193,6 +193,7 @@ files:
193
193
  - bin/setup
194
194
  - lib/defra_ruby.rb
195
195
  - lib/defra_ruby/area.rb
196
+ - lib/defra_ruby/area/area.rb
196
197
  - lib/defra_ruby/area/configuration.rb
197
198
  - lib/defra_ruby/area/no_match_error.rb
198
199
  - lib/defra_ruby/area/response.rb
@@ -206,11 +207,13 @@ files:
206
207
  - spec/cassettes/water_management_area_invalid_blank.yml
207
208
  - spec/cassettes/water_management_area_invalid_coords.yml
208
209
  - spec/cassettes/water_management_area_valid.yml
210
+ - spec/defra_ruby/area/area_spec.rb
209
211
  - spec/defra_ruby/area/configuration_spec.rb
210
212
  - spec/defra_ruby/area/response_spec.rb
211
213
  - spec/defra_ruby/area/services/public_face_area_service_spec.rb
212
214
  - spec/defra_ruby/area/services/water_management_area_service_spec.rb
213
215
  - spec/defra_ruby/area_spec.rb
216
+ - spec/examples.txt
214
217
  - spec/spec_helper.rb
215
218
  - spec/support/defra_ruby_area.rb
216
219
  - spec/support/dotenv.rb
@@ -244,21 +247,23 @@ signing_key:
244
247
  specification_version: 4
245
248
  summary: Defra ruby on rails EA administrative area lookup
246
249
  test_files:
247
- - spec/cassettes/public_face_area_invalid_blank.yml
248
- - spec/cassettes/public_face_area_invalid_coords.yml
249
- - spec/cassettes/public_face_area_valid.yml
250
- - spec/cassettes/water_management_area_invalid_blank.yml
251
- - spec/cassettes/water_management_area_invalid_coords.yml
252
- - spec/cassettes/water_management_area_valid.yml
250
+ - spec/spec_helper.rb
253
251
  - spec/defra_ruby/area/configuration_spec.rb
252
+ - spec/defra_ruby/area/area_spec.rb
254
253
  - spec/defra_ruby/area/response_spec.rb
255
- - spec/defra_ruby/area/services/public_face_area_service_spec.rb
256
254
  - spec/defra_ruby/area/services/water_management_area_service_spec.rb
255
+ - spec/defra_ruby/area/services/public_face_area_service_spec.rb
257
256
  - spec/defra_ruby/area_spec.rb
258
- - spec/spec_helper.rb
257
+ - spec/examples.txt
258
+ - spec/cassettes/water_management_area_invalid_coords.yml
259
+ - spec/cassettes/public_face_area_invalid_coords.yml
260
+ - spec/cassettes/water_management_area_invalid_blank.yml
261
+ - spec/cassettes/public_face_area_valid.yml
262
+ - spec/cassettes/water_management_area_valid.yml
263
+ - spec/cassettes/public_face_area_invalid_blank.yml
259
264
  - spec/support/defra_ruby_area.rb
260
- - spec/support/dotenv.rb
261
- - spec/support/pry.rb
262
- - spec/support/shared_examples/handle_request_errors.rb
263
265
  - spec/support/simplecov.rb
264
266
  - spec/support/vcr.rb
267
+ - spec/support/pry.rb
268
+ - spec/support/dotenv.rb
269
+ - spec/support/shared_examples/handle_request_errors.rb