defra_ruby_area 1.1.0 → 2.0.0

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: 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>