defra_ruby_area 1.1.0 → 2.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: d3eb4a2d30e01743dfd2ae40c2ee664e9e0ac763
4
- data.tar.gz: d1b991b186aeef08dc521ec3edc39b5c63ece0be
3
+ metadata.gz: 2bcadf14ad034b135923304cc09831767bad6e06
4
+ data.tar.gz: 98a662e1d55ea09410e266ba61fc00a45bf9dd14
5
5
  SHA512:
6
- metadata.gz: 69a76107b6789950ffa4c022f3d604826c70964e831511e2cda325f0f18ffc9eb085c796c6f37b416b7c7a20d9d0b4e42dcd96349fc095c93ab168c204b6cb29
7
- data.tar.gz: 3f6e75ffbce0fcb9f8d95f8d107167cf20e5affaa73b2c9d338546f5c67697f7f4b6d122d869aa0cf55949b75dc8739837efeaa773425a26c11e9bedd3f2c420
6
+ metadata.gz: faae971a1911a07d0b53d60ac6b83b5e5c6fd34a5283b787f9c4bc4537ff659a0668d117b7ba5cbf0975c7241666d6a4d848982d667c6893a8ebbfcb9c16d59b
7
+ data.tar.gz: 9198b827e537d4212e10ff9aafe61327fdaaaa867187140241e8a45da693521ea5e09ebeec4a10320a855173d16f7fa492ca217ff8125101450550fbf2136e55
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Gem Version](https://badge.fury.io/rb/defra_ruby_area.svg)](https://badge.fury.io/rb/defra_ruby_area)
8
8
  [![Licence](https://img.shields.io/badge/Licence-OGLv3-blue.svg)](http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3)
9
9
 
10
- This ruby gem provides a means of looking up an Environment Agency Administrative boundary from a GIS Web Feature Service (WFS). Provided with a valid [easting and northing](https://en.wikipedia.org/wiki/Easting_and_northing) it will query the WFS and return the long name for the area if a match is found.
10
+ This ruby gem provides a means of looking up Environment Agency Administrative boundary areas from a GIS Web Feature Service (WFS). Provided with a valid [easting and northing](https://en.wikipedia.org/wiki/Easting_and_northing) it will query the WFS and return various properties for each matching area found.
11
11
 
12
12
  ## Installation
13
13
 
@@ -33,20 +33,20 @@ Each WFS is called through a service that responds with a `DefraRuby::Area::Resp
33
33
 
34
34
  ```ruby
35
35
  response.successful?
36
- response.area
36
+ response.areas
37
37
  response.error
38
38
  ```
39
39
 
40
- If the call is successful (the query did not error and a match was found) then
40
+ If the call is successful then
41
41
 
42
42
  - `successful?()` will be `true`
43
- - `area` will contain an instance of `DefraRuby::Area::Area`. It contains the area ID, area name, code, short name and long name of the matching administrative boundary
43
+ - `areas` will contain an array of `DefraRuby::Area::Area`. Each contains the area ID, area name, 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
47
47
 
48
48
  - `successful?()` will be `false`
49
- - `area` will be `nil`
49
+ - `areas` will be `[]` (an empty array)
50
50
  - `error` will contain the error
51
51
 
52
52
  If it's a runtime error, or an error when calling the WFS `error` will contain whatever error was raised.
@@ -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.long_name if response.successful? # West Midlands
65
+ puts response.areas.first.long_name if response.successful? # West Midlands
66
66
  ```
67
67
 
68
68
  ### Water Management Areas
@@ -74,9 +74,18 @@ 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.long_name if response.successful? # Staffordshire Warwickshire and West Midlands
77
+ puts response.areas.first.long_name if response.successful? # Staffordshire Warwickshire and West Midlands
78
78
  ```
79
79
 
80
+ ### Multiple results
81
+
82
+ In most cases we expect `response.areas` to contain a single result. It is possible though for a given easting and northing to return multiple administrative boundary areas. Where we see this is when a coordinate is on the boundary of 2 areas. This is why **defra-ruby-area** is setup to return multiple results.
83
+
84
+ Examples:
85
+
86
+ - **Public face areas** easting = `398056.684` and northing = `414748` (*Yorkshire* and *Greater Manchester Merseyside and Cheshire*)
87
+ - **Water management areas** easting = `456330` and northing = `267000` (*Lincolnshire and Northamptonshire* and *Staffordshire Warwickshire and West Midlands*)
88
+
80
89
  ## Web Feature Services
81
90
 
82
91
  A [Web Feature Service (WFS)](https://en.m.wikipedia.org/wiki/Web_Feature_Service) is simply a web service that implements the Open Geospatial Consortium Web Feature Service (WFS) Interface Standard.
@@ -7,44 +7,25 @@ module DefraRuby
7
7
  class Area
8
8
  attr_reader :area_id, :area_name, :code, :long_name, :short_name
9
9
 
10
- def initialize(type_name, wfs_xml_response)
11
- @type_name = type_name
12
- @xml = wfs_xml_response
10
+ def initialize(wfs_xml_element)
11
+ @xml = wfs_xml_element
13
12
 
14
- validate
13
+ validate_xml
15
14
  parse_xml
16
15
  end
17
16
 
18
- def matched?
19
- "#{@area_name}#{@code}#{@long_name}#{@short_name}" != ""
20
- end
21
-
22
17
  private
23
18
 
24
- def validate
25
- validate_type_name
26
- validate_xml
27
- end
28
-
29
- def validate_type_name
30
- raise(ArgumentError, "type_name is invalid") unless @type_name && @type_name != ""
31
- end
32
-
33
19
  def validate_xml
34
- raise(ArgumentError, "wfs_xml_response is invalid") unless @xml&.is_a?(Nokogiri::XML::Document)
20
+ raise(ArgumentError, "wfs_xml_element is invalid") unless @xml&.is_a?(Nokogiri::XML::Element)
35
21
  end
36
22
 
37
23
  def parse_xml
38
- @area_id = @xml.xpath(response_xml_path(:area_id)).text.to_i
39
- @area_name = @xml.xpath(response_xml_path(:area_name)).text
40
- @code = @xml.xpath(response_xml_path(:code)).text
41
- @long_name = @xml.xpath(response_xml_path(:long_name)).text
42
- @short_name = @xml.xpath(response_xml_path(:short_name)).text
43
- end
44
-
45
- # XML path to the value we wish to extract in the WFS query response.
46
- def response_xml_path(property)
47
- "//wfs:FeatureCollection/gml:featureMember/#{@type_name}/ms:#{property}"
24
+ @area_id = @xml.xpath("ms:area_id").text.to_i
25
+ @area_name = @xml.xpath("ms:area_name").text
26
+ @code = @xml.xpath("ms:code").text
27
+ @long_name = @xml.xpath("ms:long_name").text
28
+ @short_name = @xml.xpath("ms:short_name").text
48
29
  end
49
30
 
50
31
  end
@@ -4,11 +4,11 @@ module DefraRuby
4
4
  module Area
5
5
  class Response
6
6
  attr_reader :error
7
- attr_reader :area
7
+ attr_reader :areas
8
8
 
9
9
  def initialize(response_exe)
10
10
  @success = true
11
- @area = nil
11
+ @areas = []
12
12
  @error = nil
13
13
 
14
14
  capture_response(response_exe)
@@ -23,7 +23,7 @@ module DefraRuby
23
23
  attr_reader :success
24
24
 
25
25
  def capture_response(response_exe)
26
- @area = response_exe.call[:area]
26
+ @areas = response_exe.call[:areas]
27
27
  rescue StandardError => e
28
28
  @error = e
29
29
  @success = false
@@ -30,13 +30,23 @@ module DefraRuby
30
30
  url: url,
31
31
  timeout: DefraRuby::Area.configuration.timeout
32
32
  )
33
- area = Area.new(type_name, Nokogiri::XML(response))
34
- raise NoMatchError unless area.matched?
33
+ areas = extract_areas(Nokogiri::XML(response))
35
34
 
36
- { area: area }
35
+ raise NoMatchError unless areas.any?
36
+
37
+ { areas: areas }
37
38
  end
38
39
  end
39
40
 
41
+ def extract_areas(xml_response)
42
+ areas = []
43
+ xml_response.xpath("//wfs:FeatureCollection/gml:featureMember").each do |parent|
44
+ areas << Area.new(parent.first_element_child)
45
+ end
46
+
47
+ areas
48
+ end
49
+
40
50
  def url
41
51
  "#{domain}/spatialdata/#{dataset}/wfs?#{url_params}"
42
52
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module DefraRuby
4
4
  module Area
5
- VERSION = "1.1.0"
5
+ VERSION = "2.0.0"
6
6
  end
7
7
  end
@@ -9,10 +9,10 @@ http_interactions:
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
12
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
13
+ - rest-client/2.1.0 (darwin18.2.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
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
- - Sun, 11 Aug 2019 15:53:34 GMT
26
+ - Wed, 28 Aug 2019 22:48:25 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: Sun, 11 Aug 2019 15:53:34 GMT
48
+ recorded_at: Wed, 28 Aug 2019 22:48:25 GMT
49
49
  recorded_with: VCR 4.0.0
@@ -9,10 +9,10 @@ http_interactions:
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
12
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
13
+ - rest-client/2.1.0 (darwin18.2.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
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
- - Sun, 11 Aug 2019 15:53:33 GMT
26
+ - Wed, 28 Aug 2019 22:48:25 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: Sun, 11 Aug 2019 15:53:34 GMT
51
+ recorded_at: Wed, 28 Aug 2019 22:48:25 GMT
52
52
  recorded_with: VCR 4.0.0
@@ -9,10 +9,10 @@ http_interactions:
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
12
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
13
+ - rest-client/2.1.0 (darwin18.2.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
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
- - Sun, 11 Aug 2019 15:53:27 GMT
26
+ - Wed, 28 Aug 2019 22:48:25 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
@@ -58,5 +58,5 @@ http_interactions:
58
58
  </gml:featureMember>
59
59
  </wfs:FeatureCollection>
60
60
  http_version:
61
- recorded_at: Sun, 11 Aug 2019 15:53:28 GMT
61
+ recorded_at: Wed, 28 Aug 2019 22:48:25 GMT
62
62
  recorded_with: VCR 4.0.0
@@ -0,0 +1,72 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
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%3E398056.684,414748%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=area_id,area_name,code,long_name,short_name&typeName=ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ User-Agent:
13
+ - rest-client/2.1.0 (darwin18.5.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Host:
17
+ - environment.data.gov.uk
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Thu, 29 Aug 2019 09:52:19 GMT
27
+ Content-Type:
28
+ - application/xml
29
+ Content-Length:
30
+ - '2348'
31
+ Connection:
32
+ - keep-alive
33
+ Cache-Control:
34
+ - private
35
+ X-Aspnet-Version:
36
+ - 4.0.30319
37
+ X-Powered-By:
38
+ - ASP.NET
39
+ body:
40
+ encoding: UTF-8
41
+ string: |-
42
+ <?xml version="1.0" encoding="utf-8" ?>
43
+ <wfs:FeatureCollection xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ms="https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs https://environment.data.gov.uk/spatialdata/administrative-boundaries-environment-agency-and-natural-england-public-face-areas/wfs?service=wfs%26version=1.0.0%26request=DescribeFeatureType">
44
+ <gml:boundedBy>
45
+ <gml:Box srsName="EPSG:27700">
46
+ <gml:coordinates>0,0,0,0</gml:coordinates>
47
+ </gml:Box>
48
+ </gml:boundedBy>
49
+ <gml:featureMember>
50
+ <ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas fid="Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas.19">
51
+ <ms:OBJECTID>19</ms:OBJECTID>
52
+ <ms:long_name>Yorkshire</ms:long_name>
53
+ <ms:short_name>Yorkshire</ms:short_name>
54
+ <ms:code>YOR</ms:code>
55
+ <ms:st_area_shape_>14482874597.24499</ms:st_area_shape_>
56
+ <ms:st_perimeter_shape_>820401.3233851442</ms:st_perimeter_shape_>
57
+ </ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas>
58
+ </gml:featureMember>
59
+ <gml:featureMember>
60
+ <ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas fid="Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas.20">
61
+ <ms:OBJECTID>20</ms:OBJECTID>
62
+ <ms:long_name>Greater Manchester Merseyside and Cheshire</ms:long_name>
63
+ <ms:short_name>Gtr Mancs Mersey and Ches</ms:short_name>
64
+ <ms:code>GMC</ms:code>
65
+ <ms:st_area_shape_>4473822349.59001</ms:st_area_shape_>
66
+ <ms:st_perimeter_shape_>543689.9446941023</ms:st_perimeter_shape_>
67
+ </ms:Administrative_Boundaries_Environment_Agency_and_Natural_England_Public_Face_Areas>
68
+ </gml:featureMember>
69
+ </wfs:FeatureCollection>
70
+ http_version:
71
+ recorded_at: Thu, 29 Aug 2019 09:52:19 GMT
72
+ recorded_with: VCR 4.0.0
@@ -9,10 +9,10 @@ http_interactions:
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
12
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
13
+ - rest-client/2.1.0 (darwin18.2.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
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
- - Sun, 11 Aug 2019 15:53:35 GMT
26
+ - Wed, 28 Aug 2019 22:48: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: Sun, 11 Aug 2019 15:53:35 GMT
48
+ recorded_at: Wed, 28 Aug 2019 22:48:26 GMT
49
49
  recorded_with: VCR 4.0.0
@@ -9,10 +9,10 @@ http_interactions:
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
12
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
13
+ - rest-client/2.1.0 (darwin18.2.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
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
- - Sun, 11 Aug 2019 15:53:34 GMT
26
+ - Wed, 28 Aug 2019 22:48:27 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: Sun, 11 Aug 2019 15:53:34 GMT
51
+ recorded_at: Wed, 28 Aug 2019 22:48:27 GMT
52
52
  recorded_with: VCR 4.0.0
@@ -9,10 +9,10 @@ http_interactions:
9
9
  headers:
10
10
  Accept:
11
11
  - "*/*"
12
- Accept-Encoding:
13
- - gzip, deflate
14
12
  User-Agent:
15
- - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
13
+ - rest-client/2.1.0 (darwin18.2.0 x86_64) ruby/2.4.2p198
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
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
- - Sun, 11 Aug 2019 15:53:41 GMT
26
+ - Wed, 28 Aug 2019 22:48:26 GMT
27
27
  Content-Type:
28
28
  - application/xml
29
29
  Content-Length:
@@ -60,5 +60,5 @@ http_interactions:
60
60
  </gml:featureMember>
61
61
  </wfs:FeatureCollection>
62
62
  http_version:
63
- recorded_at: Sun, 11 Aug 2019 15:53:41 GMT
63
+ recorded_at: Wed, 28 Aug 2019 22:48:26 GMT
64
64
  recorded_with: VCR 4.0.0
@@ -0,0 +1,76 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
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%3E456330,267000%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=area_id,area_name,code,long_name,short_name&typeName=ms:Administrative_Boundaries_Water_Management_Areas
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - "*/*"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - rest-client/2.0.2 (darwin18.2.0 x86_64) ruby/2.4.2p198
16
+ Host:
17
+ - environment.data.gov.uk
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Wed, 28 Aug 2019 16:25:23 GMT
27
+ Content-Type:
28
+ - application/xml
29
+ Content-Length:
30
+ - '2234'
31
+ Connection:
32
+ - keep-alive
33
+ Cache-Control:
34
+ - private
35
+ X-Aspnet-Version:
36
+ - 4.0.30319
37
+ X-Powered-By:
38
+ - ASP.NET
39
+ body:
40
+ encoding: UTF-8
41
+ string: |-
42
+ <?xml version="1.0" encoding="utf-8" ?>
43
+ <wfs:FeatureCollection xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ms="https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?service=wfs%26version=1.0.0%26request=DescribeFeatureType">
44
+ <gml:boundedBy>
45
+ <gml:Box srsName="EPSG:27700">
46
+ <gml:coordinates>0,0,0,0</gml:coordinates>
47
+ </gml:Box>
48
+ </gml:boundedBy>
49
+ <gml:featureMember>
50
+ <ms:Administrative_Boundaries_Water_Management_Areas fid="Administrative_Boundaries_Water_Management_Areas.11">
51
+ <ms:OBJECTID>11</ms:OBJECTID>
52
+ <ms:long_name>Lincolnshire and Northamptonshire</ms:long_name>
53
+ <ms:short_name>Lincs and Northants</ms:short_name>
54
+ <ms:code>LCNNTH</ms:code>
55
+ <ms:area_id>3</ms:area_id>
56
+ <ms:area_name>Northern</ms:area_name>
57
+ <ms:st_area_shape_>9270202427.530003</ms:st_area_shape_>
58
+ <ms:st_perimeter_shape_>1148848.464792307</ms:st_perimeter_shape_>
59
+ </ms:Administrative_Boundaries_Water_Management_Areas>
60
+ </gml:featureMember>
61
+ <gml:featureMember>
62
+ <ms:Administrative_Boundaries_Water_Management_Areas fid="Administrative_Boundaries_Water_Management_Areas.15">
63
+ <ms:OBJECTID>15</ms:OBJECTID>
64
+ <ms:long_name>Staffordshire Warwickshire and West Midlands</ms:long_name>
65
+ <ms:short_name>Staffs Warks and West Mids</ms:short_name>
66
+ <ms:code>STWKWM</ms:code>
67
+ <ms:area_id>29</ms:area_id>
68
+ <ms:area_name>Central</ms:area_name>
69
+ <ms:st_area_shape_>6460280400.1</ms:st_area_shape_>
70
+ <ms:st_perimeter_shape_>759189.708848595</ms:st_perimeter_shape_>
71
+ </ms:Administrative_Boundaries_Water_Management_Areas>
72
+ </gml:featureMember>
73
+ </wfs:FeatureCollection>
74
+ http_version:
75
+ recorded_at: Wed, 28 Aug 2019 16:25:23 GMT
76
+ recorded_with: VCR 4.0.0
@@ -6,109 +6,38 @@ require "nokogiri"
6
6
  module DefraRuby
7
7
  module Area
8
8
  RSpec.describe Area do
9
- let(:valid_type_name) { "ms:Administrative_Boundaries_Water_Management_Areas" }
10
- let(:invalid_type_name) { "////" }
11
- let(:no_match_type_name) { "ms:Marvel_Cinematic_Universe_Areas" }
12
-
13
- let(:valid_xml) { File.open("spec/fixtures/valid.xml") { |f| Nokogiri::XML(f) } }
9
+ let(:valid_xml) do
10
+ document = Nokogiri::XML(File.read("spec/fixtures/valid.xml"))
11
+ document.xpath("//wfs:FeatureCollection/gml:featureMember").first.first_element_child
12
+ end
14
13
  let(:invalid_xml) { "foo" }
15
- let(:no_match_xml) { File.open("spec/fixtures/no_match.xml") { |f| Nokogiri::XML(f) } }
16
-
17
- let(:no_match_area) { described_class.new(valid_type_name, no_match_xml) }
18
- let(:matched_area) { described_class.new(valid_type_name, valid_xml) }
19
14
 
20
15
  describe "#initialize" do
21
- context "when arguments are missing" do
22
-
23
- context "and both arguments are missing" do
24
- it "raises an ArgumentError" do
25
- expect { described_class.new(nil, nil) }.to raise_error(ArgumentError, "type_name is invalid")
26
- end
27
- end
28
-
29
- context "and `type_name` is missing" do
30
- it "raises an ArgumentError" do
31
- expect { described_class.new(nil, valid_xml) }.to raise_error(ArgumentError, "type_name is invalid")
32
- end
33
- end
34
-
35
- context "and `wfs_xml_response` is missing" do
36
- it "raises an ArgumentError" do
37
- expect { described_class.new(valid_type_name, nil) }.to raise_error(ArgumentError, "wfs_xml_response is invalid")
38
- end
16
+ context "when `wfs_xml_element` is missing" do
17
+ it "raises an ArgumentError" do
18
+ expect { described_class.new(nil) }.to raise_error(ArgumentError, "wfs_xml_element is invalid")
39
19
  end
40
20
  end
41
21
 
42
- context "when arguments are invalid" do
43
-
44
- context "and passed an invalid Nokogiri::XML::Documentation instance" do
45
- it "raises an error" do
46
- expect { described_class.new(valid_type_name, invalid_xml) }.to raise_error(ArgumentError, "wfs_xml_response is invalid")
47
- end
48
- end
49
-
50
- context "and passed an invalid type name" do
51
- it "raises an error" do
52
- expect { described_class.new(invalid_type_name, valid_xml) }.to raise_error(Nokogiri::XML::XPath::SyntaxError)
53
- end
22
+ context "when `wfs_xml_element` is invalid" do
23
+ it "raises an error" do
24
+ expect { described_class.new(invalid_xml) }.to raise_error(ArgumentError, "wfs_xml_element is invalid")
54
25
  end
55
26
  end
56
27
 
57
- context "when passed valid arguments" do
58
-
59
- context "and type name is recognised and there was a match" do
60
- it "populates all an Area's attributes" do
61
- subject = described_class.new(valid_type_name, valid_xml)
62
-
63
- expect(subject.area_id).to eq(29)
64
- expect(subject.area_name).to eq("Central")
65
- expect(subject.code).to eq("STWKWM")
66
- expect(subject.short_name).to eq("Staffs Warks and West Mids")
67
- expect(subject.long_name).to eq("Staffordshire Warwickshire and West Midlands")
68
- end
69
- end
70
-
71
- context "and type name does not match the xml" do
72
- it "does not populate an Area's attributes" do
73
- subject = described_class.new(no_match_type_name, valid_xml)
28
+ context "when `wfs_xml_element` is valid" do
29
+ it "populates all an Area's attributes" do
30
+ subject = described_class.new(valid_xml)
74
31
 
75
- expect(subject.area_id).to eq(0)
76
- expect(subject.area_name).to eq("")
77
- expect(subject.code).to eq("")
78
- expect(subject.short_name).to eq("")
79
- expect(subject.long_name).to eq("")
80
- end
81
- end
82
-
83
- context "and the WFS responded with no match" do
84
- it "does not populate an Area's attributes" do
85
- subject = described_class.new(valid_type_name, no_match_xml)
86
-
87
- expect(subject.area_id).to eq(0)
88
- expect(subject.area_name).to eq("")
89
- expect(subject.code).to eq("")
90
- expect(subject.short_name).to eq("")
91
- expect(subject.long_name).to eq("")
92
- end
32
+ expect(subject.area_id).to eq(29)
33
+ expect(subject.area_name).to eq("Central")
34
+ expect(subject.code).to eq("STWKWM")
35
+ expect(subject.short_name).to eq("Staffs Warks and West Mids")
36
+ expect(subject.long_name).to eq("Staffordshire Warwickshire and West Midlands")
93
37
  end
94
38
  end
95
39
  end
96
40
 
97
- describe "#matched?" do
98
- context "when no match was found" do
99
-
100
- it "returns false" do
101
- expect(no_match_area.matched?).to eq(false)
102
- end
103
- end
104
-
105
- context "when a match was found" do
106
-
107
- it "returns true" do
108
- expect(matched_area.matched?).to eq(true)
109
- end
110
- end
111
- end
112
41
  end
113
42
  end
114
43
  end
@@ -7,10 +7,12 @@ module DefraRuby
7
7
  RSpec.describe Response do
8
8
  subject(:response) { described_class.new(response_exe) }
9
9
 
10
- let(:valid_type_name) { "ms:Administrative_Boundaries_Water_Management_Areas" }
11
- let(:valid_xml) { File.open("spec/fixtures/valid.xml") { |f| Nokogiri::XML(f) } }
10
+ let(:valid_xml) do
11
+ document = Nokogiri::XML(File.read("spec/fixtures/valid.xml"))
12
+ document.xpath("//wfs:FeatureCollection/gml:featureMember").first.first_element_child
13
+ end
12
14
 
13
- let(:successful) { -> { { area: Area.new(valid_type_name, valid_xml) } } }
15
+ let(:successful) { -> { { areas: [Area.new(valid_xml)] } } }
14
16
  let(:errored) { -> { raise "Boom!" } }
15
17
 
16
18
  describe "#successful?" do
@@ -36,7 +38,7 @@ module DefraRuby
36
38
  let(:response_exe) { errored }
37
39
 
38
40
  it "returns nothing" do
39
- expect(response.area).to be_nil
41
+ expect(response.areas).to be_empty
40
42
  end
41
43
  end
42
44
 
@@ -44,8 +46,8 @@ module DefraRuby
44
46
  let(:response_exe) { successful }
45
47
 
46
48
  it "returns an area" do
47
- expect(response.area).to be_instance_of(Area)
48
- expect(response.area.short_name).to eq("Staffs Warks and West Mids")
49
+ expect(response.areas[0]).to be_instance_of(Area)
50
+ expect(response.areas[0].short_name).to eq("Staffs Warks and West Mids")
49
51
  end
50
52
  end
51
53
  end
@@ -18,11 +18,26 @@ 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.long_name).to eq("West Midlands")
21
+ expect(response.areas[0].long_name).to eq("West Midlands")
22
22
  end
23
23
 
24
24
  end
25
25
 
26
+ context "when the coordinates are valid, in England but match more than one area" do
27
+ before(:each) { VCR.insert_cassette("public_face_area_valid_multiple") }
28
+ after(:each) { VCR.eject_cassette }
29
+
30
+ let(:easting) { 398_056.684 }
31
+ let(:northing) { 414_748 }
32
+
33
+ it "returns a successful response" do
34
+ response = described_class.run(easting, northing)
35
+ expect(response).to be_a(Response)
36
+ expect(response.successful?).to eq(true)
37
+ expect(response.areas[0].long_name).to eq("Yorkshire")
38
+ end
39
+ end
40
+
26
41
  context "when the coordinates are invalid" do
27
42
  context "because they are blank" do
28
43
  before(:each) { VCR.insert_cassette("public_face_area_invalid_blank") }
@@ -35,7 +50,7 @@ module DefraRuby
35
50
  response = described_class.run(easting, northing)
36
51
  expect(response).to be_a(Response)
37
52
  expect(response).to_not be_successful
38
- expect(response.area).to be_nil
53
+ expect(response.areas).to be_empty
39
54
  expect(response.error).to_not be_nil
40
55
  end
41
56
  end
@@ -51,7 +66,7 @@ module DefraRuby
51
66
  response = described_class.run(easting, northing)
52
67
  expect(response).to be_a(Response)
53
68
  expect(response).to_not be_successful
54
- expect(response.area).to be_nil
69
+ expect(response.areas).to be_empty
55
70
  expect(response.error).to_not be_nil
56
71
  end
57
72
  end
@@ -18,11 +18,26 @@ 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.long_name).to eq("Staffordshire Warwickshire and West Midlands")
21
+ expect(response.areas[0].long_name).to eq("Staffordshire Warwickshire and West Midlands")
22
22
  end
23
23
 
24
24
  end
25
25
 
26
+ context "when the coordinates are valid, in England but match more than one area" do
27
+ before(:each) { VCR.insert_cassette("water_management_area_valid_multiple") }
28
+ after(:each) { VCR.eject_cassette }
29
+
30
+ let(:easting) { 456_330 }
31
+ let(:northing) { 267_000 }
32
+
33
+ it "returns a successful response" do
34
+ response = described_class.run(easting, northing)
35
+ expect(response).to be_a(Response)
36
+ expect(response.successful?).to eq(true)
37
+ expect(response.areas[0].long_name).to eq("Lincolnshire and Northamptonshire")
38
+ end
39
+ end
40
+
26
41
  context "when the coordinates are invalid" do
27
42
  context "because they are blank" do
28
43
  before(:each) { VCR.insert_cassette("water_management_area_invalid_blank") }
@@ -35,7 +50,7 @@ module DefraRuby
35
50
  response = described_class.run(easting, northing)
36
51
  expect(response).to be_a(Response)
37
52
  expect(response).to_not be_successful
38
- expect(response.area).to be_nil
53
+ expect(response.areas).to be_empty
39
54
  expect(response.error).to_not be_nil
40
55
  end
41
56
  end
@@ -51,7 +66,7 @@ module DefraRuby
51
66
  response = described_class.run(easting, northing)
52
67
  expect(response).to be_a(Response)
53
68
  expect(response).to_not be_successful
54
- expect(response.area).to be_nil
69
+ expect(response.areas).to be_empty
55
70
  expect(response.error).to_not be_nil
56
71
  end
57
72
  end
@@ -1,32 +1,27 @@
1
1
  example_id | status | run_time |
2
2
  -------------------------------------------------------------------------------- | ------ | --------------- |
3
- ./spec/defra_ruby/area/area_spec.rb[1:1:1:1:1] | passed | 0.00032 seconds |
4
- ./spec/defra_ruby/area/area_spec.rb[1:1:1:2:1] | passed | 0.00916 seconds |
5
- ./spec/defra_ruby/area/area_spec.rb[1:1:1:3:1] | passed | 0.00064 seconds |
6
- ./spec/defra_ruby/area/area_spec.rb[1:1:2:1:1] | passed | 0.0003 seconds |
7
- ./spec/defra_ruby/area/area_spec.rb[1:1:2:2:1] | passed | 0.00063 seconds |
8
- ./spec/defra_ruby/area/area_spec.rb[1:1:3:1:1] | passed | 0.00196 seconds |
9
- ./spec/defra_ruby/area/area_spec.rb[1:1:3:2:1] | passed | 0.00152 seconds |
10
- ./spec/defra_ruby/area/area_spec.rb[1:1:3:3:1] | passed | 0.00145 seconds |
11
- ./spec/defra_ruby/area/area_spec.rb[1:2:1:1] | passed | 0.001 seconds |
12
- ./spec/defra_ruby/area/area_spec.rb[1:2:2:1] | passed | 0.00297 seconds |
13
- ./spec/defra_ruby/area/configuration_spec.rb[1:1] | passed | 0.00014 seconds |
14
- ./spec/defra_ruby/area/response_spec.rb[1:1:1:1] | passed | 0.00019 seconds |
15
- ./spec/defra_ruby/area/response_spec.rb[1:1:2:1] | passed | 0.00102 seconds |
16
- ./spec/defra_ruby/area/response_spec.rb[1:2:1:1] | passed | 0.00017 seconds |
17
- ./spec/defra_ruby/area/response_spec.rb[1:2:2:1] | passed | 0.00153 seconds |
18
- ./spec/defra_ruby/area/response_spec.rb[1:3:1:1] | passed | 0.00015 seconds |
19
- ./spec/defra_ruby/area/response_spec.rb[1:3:2:1] | passed | 0.001 seconds |
20
- ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:1:1] | passed | 7.1 seconds |
21
- ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:2:1:1] | passed | 0.18395 seconds |
22
- ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:2:2:1] | passed | 6.23 seconds |
23
- ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:3:1:1] | passed | 0.03068 seconds |
24
- ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:3:2:1] | passed | 0.03346 seconds |
25
- ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:1:1] | passed | 5.59 seconds |
26
- ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:2:1:1] | passed | 0.4264 seconds |
27
- ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:2:2:1] | passed | 0.39163 seconds |
28
- ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:3:1:1] | passed | 0.03075 seconds |
29
- ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:3:2:1] | passed | 0.04335 seconds |
30
- ./spec/defra_ruby/area_spec.rb[1:1:1] | passed | 0.01054 seconds |
31
- ./spec/defra_ruby/area_spec.rb[1:2:1:1] | passed | 0.00278 seconds |
32
- ./spec/defra_ruby/area_spec.rb[1:2:2:1] | passed | 0.00334 seconds |
3
+ ./spec/defra_ruby/area/area_spec.rb[1:1:1:1] | passed | 0.00012 seconds |
4
+ ./spec/defra_ruby/area/area_spec.rb[1:1:2:1] | passed | 0.00145 seconds |
5
+ ./spec/defra_ruby/area/area_spec.rb[1:1:3:1] | passed | 0.00082 seconds |
6
+ ./spec/defra_ruby/area/configuration_spec.rb[1:1] | passed | 0.0001 seconds |
7
+ ./spec/defra_ruby/area/response_spec.rb[1:1:1:1] | passed | 0.00014 seconds |
8
+ ./spec/defra_ruby/area/response_spec.rb[1:1:2:1] | passed | 0.00079 seconds |
9
+ ./spec/defra_ruby/area/response_spec.rb[1:2:1:1] | passed | 0.00016 seconds |
10
+ ./spec/defra_ruby/area/response_spec.rb[1:2:2:1] | passed | 0.00085 seconds |
11
+ ./spec/defra_ruby/area/response_spec.rb[1:3:1:1] | passed | 0.00014 seconds |
12
+ ./spec/defra_ruby/area/response_spec.rb[1:3:2:1] | passed | 0.00085 seconds |
13
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:1:1] | passed | 0.03742 seconds |
14
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:2:1] | passed | 0.02956 seconds |
15
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:3:1:1] | passed | 0.03033 seconds |
16
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:3:2:1] | passed | 0.02817 seconds |
17
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:4:1:1] | passed | 0.02708 seconds |
18
+ ./spec/defra_ruby/area/services/public_face_area_service_spec.rb[1:1:4:2:1] | passed | 0.02668 seconds |
19
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:1:1] | passed | 0.02484 seconds |
20
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:2:1] | passed | 0.03471 seconds |
21
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:3:1:1] | passed | 0.03063 seconds |
22
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:3:2:1] | passed | 0.03441 seconds |
23
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:4:1:1] | passed | 0.02612 seconds |
24
+ ./spec/defra_ruby/area/services/water_management_area_service_spec.rb[1:1:4:2:1] | passed | 0.03511 seconds |
25
+ ./spec/defra_ruby/area_spec.rb[1:1:1] | passed | 0.00143 seconds |
26
+ ./spec/defra_ruby/area_spec.rb[1:2:1:1] | passed | 0.00067 seconds |
27
+ ./spec/defra_ruby/area_spec.rb[1:2:2:1] | passed | 0.00066 seconds |
@@ -16,7 +16,7 @@ RSpec.shared_examples "handle request errors" do
16
16
  response = described_class.run(easting, northing)
17
17
  expect(response).to be_a(DefraRuby::Area::Response)
18
18
  expect(response).to_not be_successful
19
- expect(response.area).to be_nil
19
+ expect(response.areas).to be_empty
20
20
  expect(response.error).to_not be_nil
21
21
  end
22
22
  end
@@ -28,7 +28,7 @@ RSpec.shared_examples "handle request errors" do
28
28
  response = described_class.run(easting, northing)
29
29
  expect(response).to be_a(DefraRuby::Area::Response)
30
30
  expect(response).to_not be_successful
31
- expect(response.area).to be_nil
31
+ expect(response.areas).to be_empty
32
32
  expect(response.error).to_not be_nil
33
33
  end
34
34
  end
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: 1.1.0
4
+ version: 2.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-11 00:00:00.000000000 Z
11
+ date: 2019-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.10.3
19
+ version: 1.10.4
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
- version: 1.10.3
26
+ version: 1.10.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rest-client
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -204,9 +204,11 @@ files:
204
204
  - spec/cassettes/public_face_area_invalid_blank.yml
205
205
  - spec/cassettes/public_face_area_invalid_coords.yml
206
206
  - spec/cassettes/public_face_area_valid.yml
207
+ - spec/cassettes/public_face_area_valid_multiple.yml
207
208
  - spec/cassettes/water_management_area_invalid_blank.yml
208
209
  - spec/cassettes/water_management_area_invalid_coords.yml
209
210
  - spec/cassettes/water_management_area_valid.yml
211
+ - spec/cassettes/water_management_area_valid_multiple.yml
210
212
  - spec/defra_ruby/area/area_spec.rb
211
213
  - spec/defra_ruby/area/configuration_spec.rb
212
214
  - spec/defra_ruby/area/response_spec.rb
@@ -214,7 +216,6 @@ files:
214
216
  - spec/defra_ruby/area/services/water_management_area_service_spec.rb
215
217
  - spec/defra_ruby/area_spec.rb
216
218
  - spec/examples.txt
217
- - spec/fixtures/no_match.xml
218
219
  - spec/fixtures/valid.xml
219
220
  - spec/spec_helper.rb
220
221
  - spec/support/defra_ruby_area.rb
@@ -263,11 +264,12 @@ test_files:
263
264
  - spec/cassettes/public_face_area_valid.yml
264
265
  - spec/cassettes/water_management_area_valid.yml
265
266
  - spec/cassettes/public_face_area_invalid_blank.yml
267
+ - spec/cassettes/public_face_area_valid_multiple.yml
268
+ - spec/cassettes/water_management_area_valid_multiple.yml
266
269
  - spec/support/defra_ruby_area.rb
267
270
  - spec/support/simplecov.rb
268
271
  - spec/support/vcr.rb
269
272
  - spec/support/pry.rb
270
273
  - spec/support/dotenv.rb
271
274
  - spec/support/shared_examples/handle_request_errors.rb
272
- - spec/fixtures/no_match.xml
273
275
  - spec/fixtures/valid.xml
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8" ?>
2
- <wfs:FeatureCollection xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ms="https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd http://www.opengis.net/gml http://schemas.opengis.net/gml/2.1.2/feature.xsd https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs https://environment.data.gov.uk/spatialdata/administrative-boundaries-water-management-areas/wfs?service=wfs%26version=1.0.0%26request=DescribeFeatureType">
3
- <gml:boundedBy>
4
- <gml:Box srsName="EPSG:27700">
5
- <gml:coordinates>0,0,0,0</gml:coordinates>
6
- </gml:Box>
7
- </gml:boundedBy>
8
- </wfs:FeatureCollection>