ideal_postcodes 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +22 -0
  3. data/lib/ideal_postcodes.rb +1 -1
  4. data/lib/idealpostcodes/address.rb +28 -28
  5. data/lib/idealpostcodes/errors.rb +31 -26
  6. data/lib/idealpostcodes/key.rb +12 -11
  7. data/lib/idealpostcodes/postcode.rb +21 -20
  8. data/lib/idealpostcodes/util.rb +38 -25
  9. data/lib/idealpostcodes/version.rb +2 -2
  10. data/lib/idealpostcodes.rb +104 -92
  11. data/spec/addresses_spec.rb +63 -63
  12. data/spec/idealpostcodes_spec.rb +51 -51
  13. data/spec/keys_spec.rb +21 -21
  14. data/spec/postcodes_spec.rb +74 -63
  15. data/spec/spec_helper.rb +50 -29
  16. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_raises_an_exception_if_invalid_key.yml +39 -39
  17. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_raises_an_exception_if_limit_breached.yml +39 -39
  18. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_raises_an_exception_if_no_lookups_remaining.yml +39 -39
  19. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_returns_an_address_for_a_valid_UDPRN.yml +71 -71
  20. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_returns_nil_for_an_invalid_UDPRN.yml +39 -39
  21. data/spec/vcr_cassettes/IdealPostcodes_Address_search_is_sensitive_to_limit.yml +78 -78
  22. data/spec/vcr_cassettes/IdealPostcodes_Address_search_is_sensitive_to_page.yml +366 -366
  23. data/spec/vcr_cassettes/IdealPostcodes_Address_search_raises_an_exception_if_invalid_key.yml +39 -39
  24. data/spec/vcr_cassettes/IdealPostcodes_Address_search_raises_an_exception_if_limit_breached.yml +39 -39
  25. data/spec/vcr_cassettes/IdealPostcodes_Address_search_raises_an_exception_if_no_lookups_remaining.yml +39 -39
  26. data/spec/vcr_cassettes/IdealPostcodes_Address_search_returns_results_in_a_SearchResult_object.yml +270 -270
  27. data/spec/vcr_cassettes/IdealPostcodes_Key_lookup_details_returns_key_details.yml +58 -58
  28. data/spec/vcr_cassettes/IdealPostcodes_Key_lookup_returns_the_availability_status_of_a_key_false_key_.yml +42 -42
  29. data/spec/vcr_cassettes/IdealPostcodes_Key_lookup_returns_the_availability_status_of_a_key_true_key_.yml +42 -42
  30. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_is_sensitive_to_limit_parameter.yml +49 -49
  31. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_is_sensitive_to_radius_parament.yml +130 -130
  32. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_returns_an_array_of_postcodes_and_locations.yml +81 -81
  33. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_returns_an_empty_array_if_no_results_are_found.yml +40 -40
  34. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_raises_an_exception_if_invalid_key.yml +39 -39
  35. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_raises_an_exception_if_key_has_run_out_of_balance.yml +39 -39
  36. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_raises_an_exception_if_limit_has_been_reached.yml +39 -39
  37. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_returns_a_list_of_addresses_for_a_postcode.yml +265 -265
  38. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_returns_an_empty_array_if_postcode_does_not_exist.yml +39 -39
  39. data/spec/vcr_cassettes/IdealPostcodes_key_available_returns_false_if_key_is_unavailable.yml +42 -42
  40. data/spec/vcr_cassettes/IdealPostcodes_key_available_returns_true_if_key_is_available.yml +42 -42
  41. data/spec/vcr_cassettes/IdealPostcodes_key_details_raises_an_exception_if_no_secret_is_provided.yml +42 -42
  42. data/spec/vcr_cassettes/IdealPostcodes_key_details_returns_key_information.yml +58 -58
  43. data/spec/vcr_cassettes/IdealPostcodes_request_generates_a_HTTP_request.yml +265 -265
  44. data/spec/vcr_cassettes/IdealPostcodes_request_raises_authentication_error_if_invalid_key_is_provided.yml +39 -39
  45. data/spec/vcr_cassettes/IdealPostcodes_request_raises_limit_reached_error_if_a_limit_has_been_breached.yml +39 -39
  46. data/spec/vcr_cassettes/IdealPostcodes_request_raises_token_exhausted_error_if_key_balance_is_depleted.yml +39 -39
  47. metadata +4 -5
  48. data/.travis.yml +0 -9
@@ -1,62 +1,62 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/keys/gandhi?api_key=gandhi&user_token=uk_hxp6ouk0rmyXoobVJnehrsQcdvTfb
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '405'
27
- Etag:
28
- - '"-476306859"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:27 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "result": {
38
- "lookups_remaining": 20894,
39
- "daily_limit": {
40
- "limit": null,
41
- "consumed": 0
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/keys/gandhi?api_key=gandhi&user_token=uk_hxp6ouk0rmyXoobVJnehrsQcdvTfb
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "405"
27
+ Etag:
28
+ - '"-476306859"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:27 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "result": {
38
+ "lookups_remaining": 20894,
39
+ "daily_limit": {
40
+ "limit": null,
41
+ "consumed": 0
42
+ },
43
+ "individual_limit": {
44
+ "limit": null
45
+ },
46
+ "allowed_urls": [],
47
+ "notifications": {
48
+ "emails": [
49
+ "cablanchard2@gmail.com"
50
+ ],
51
+ "enabled": true
52
+ },
53
+ "automated_topups": {
54
+ "enabled": true
55
+ }
42
56
  },
43
- "individual_limit": {
44
- "limit": null
45
- },
46
- "allowed_urls": [],
47
- "notifications": {
48
- "emails": [
49
- "cablanchard2@gmail.com"
50
- ],
51
- "enabled": true
52
- },
53
- "automated_topups": {
54
- "enabled": true
55
- }
56
- },
57
- "code": 2000,
58
- "message": "Success"
59
- }
60
- http_version:
61
- recorded_at: Fri, 12 Dec 2014 17:40:27 GMT
57
+ "code": 2000,
58
+ "message": "Success"
59
+ }
60
+ http_version:
61
+ recorded_at: Fri, 12 Dec 2014 17:40:27 GMT
62
62
  recorded_with: VCR 2.9.3
@@ -1,45 +1,45 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/keys/idkfa?api_key=gandhi
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '84'
27
- Etag:
28
- - '"2073554680"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:27 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "result": {
38
- "available": false
39
- },
40
- "code": 2000,
41
- "message": "Success"
42
- }
43
- http_version:
44
- recorded_at: Fri, 12 Dec 2014 17:40:27 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/keys/idkfa?api_key=gandhi
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "84"
27
+ Etag:
28
+ - '"2073554680"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:27 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "result": {
38
+ "available": false
39
+ },
40
+ "code": 2000,
41
+ "message": "Success"
42
+ }
43
+ http_version:
44
+ recorded_at: Fri, 12 Dec 2014 17:40:27 GMT
45
45
  recorded_with: VCR 2.9.3
@@ -1,45 +1,45 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/keys/iddqd?api_key=gandhi
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '83'
27
- Etag:
28
- - '"2124296415"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:27 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "result": {
38
- "available": true
39
- },
40
- "code": 2000,
41
- "message": "Success"
42
- }
43
- http_version:
44
- recorded_at: Fri, 12 Dec 2014 17:40:27 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/keys/iddqd?api_key=gandhi
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "83"
27
+ Etag:
28
+ - '"2124296415"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:27 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "result": {
38
+ "available": true
39
+ },
40
+ "code": 2000,
41
+ "message": "Success"
42
+ }
43
+ http_version:
44
+ recorded_at: Fri, 12 Dec 2014 17:40:27 GMT
45
45
  recorded_with: VCR 2.9.3
@@ -1,52 +1,52 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/postcodes?api_key=gandhi&limit=1&lonlat=0.6298,51.7923
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '258'
27
- Etag:
28
- - '"-583643089"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:28 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "result": [
38
- {
39
- "postcode": "CM8 1EF",
40
- "northings": 213679,
41
- "eastings": 581461,
42
- "longitude": 0.629834723775309,
43
- "latitude": 51.7923246977375,
44
- "distance": 3.64568457
45
- }
46
- ],
47
- "code": 2000,
48
- "message": "Success"
49
- }
50
- http_version:
51
- recorded_at: Fri, 12 Dec 2014 17:40:28 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/postcodes?api_key=gandhi&limit=1&lonlat=0.6298,51.7923
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "258"
27
+ Etag:
28
+ - '"-583643089"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:28 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "result": [
38
+ {
39
+ "postcode": "CM8 1EF",
40
+ "northings": 213679,
41
+ "eastings": 581461,
42
+ "longitude": 0.629834723775309,
43
+ "latitude": 51.7923246977375,
44
+ "distance": 3.64568457
45
+ }
46
+ ],
47
+ "code": 2000,
48
+ "message": "Success"
49
+ }
50
+ http_version:
51
+ recorded_at: Fri, 12 Dec 2014 17:40:28 GMT
52
52
  recorded_with: VCR 2.9.3
@@ -1,133 +1,133 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/postcodes?api_key=gandhi&lonlat=0.6298,51.7923&radius=10
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '258'
27
- Etag:
28
- - '"-583643089"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:28 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "result": [
38
- {
39
- "postcode": "CM8 1EF",
40
- "northings": 213679,
41
- "eastings": 581461,
42
- "longitude": 0.629834723775309,
43
- "latitude": 51.7923246977375,
44
- "distance": 3.64568457
45
- }
46
- ],
47
- "code": 2000,
48
- "message": "Success"
49
- }
50
- http_version:
51
- recorded_at: Fri, 12 Dec 2014 17:40:28 GMT
52
- - request:
53
- method: get
54
- uri: https://localhost:1337/v1/postcodes?api_key=gandhi&lonlat=0.6298,51.7923&radius=100
55
- body:
56
- encoding: US-ASCII
57
- string: ''
58
- headers:
59
- Accept:
60
- - '*/*; q=0.5, application/xml'
61
- Accept-Encoding:
62
- - gzip, deflate
63
- User-Agent:
64
- - Ruby
65
- response:
66
- status:
67
- code: 200
68
- message: OK
69
- headers:
70
- Access-Control-Allow-Origin:
71
- - '*'
72
- Content-Type:
73
- - application/json; charset=utf-8
74
- Content-Length:
75
- - '1058'
76
- Etag:
77
- - '"707345369"'
78
- Date:
79
- - Fri, 12 Dec 2014 17:40:28 GMT
80
- Connection:
81
- - keep-alive
82
- body:
83
- encoding: UTF-8
84
- string: |-
85
- {
86
- "result": [
87
- {
88
- "postcode": "CM8 1EF",
89
- "northings": 213679,
90
- "eastings": 581461,
91
- "longitude": 0.629834723775309,
92
- "latitude": 51.7923246977375,
93
- "distance": 3.64568457
94
- },
95
- {
96
- "postcode": "CM8 1EU",
97
- "northings": 213650,
98
- "eastings": 581507,
99
- "longitude": 0.630485817275861,
100
- "latitude": 51.7920493205979,
101
- "distance": 54.926867768
102
- },
103
- {
104
- "postcode": "CM8 1PH",
105
- "northings": 213741,
106
- "eastings": 581420,
107
- "longitude": 0.629273287180607,
108
- "latitude": 51.7928948417687,
109
- "distance": 75.504780435
110
- },
111
- {
112
- "postcode": "CM8 1EN",
113
- "northings": 213664,
114
- "eastings": 581366,
115
- "longitude": 0.628450923709479,
116
- "latitude": 51.7922207606932,
117
- "distance": 93.496753053
118
- },
119
- {
120
- "postcode": "CM8 1PQ",
121
- "northings": 213752,
122
- "eastings": 581403,
123
- "longitude": 0.629032807022633,
124
- "latitude": 51.7929991478552,
125
- "distance": 94.090672986
126
- }
127
- ],
128
- "code": 2000,
129
- "message": "Success"
130
- }
131
- http_version:
132
- recorded_at: Fri, 12 Dec 2014 17:40:28 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/postcodes?api_key=gandhi&lonlat=0.6298,51.7923&radius=10
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "258"
27
+ Etag:
28
+ - '"-583643089"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:28 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "result": [
38
+ {
39
+ "postcode": "CM8 1EF",
40
+ "northings": 213679,
41
+ "eastings": 581461,
42
+ "longitude": 0.629834723775309,
43
+ "latitude": 51.7923246977375,
44
+ "distance": 3.64568457
45
+ }
46
+ ],
47
+ "code": 2000,
48
+ "message": "Success"
49
+ }
50
+ http_version:
51
+ recorded_at: Fri, 12 Dec 2014 17:40:28 GMT
52
+ - request:
53
+ method: get
54
+ uri: https://localhost:1337/v1/postcodes?api_key=gandhi&lonlat=0.6298,51.7923&radius=100
55
+ body:
56
+ encoding: US-ASCII
57
+ string: ""
58
+ headers:
59
+ Accept:
60
+ - "*/*; q=0.5, application/xml"
61
+ Accept-Encoding:
62
+ - gzip, deflate
63
+ User-Agent:
64
+ - Ruby
65
+ response:
66
+ status:
67
+ code: 200
68
+ message: OK
69
+ headers:
70
+ Access-Control-Allow-Origin:
71
+ - "*"
72
+ Content-Type:
73
+ - application/json; charset=utf-8
74
+ Content-Length:
75
+ - "1058"
76
+ Etag:
77
+ - '"707345369"'
78
+ Date:
79
+ - Fri, 12 Dec 2014 17:40:28 GMT
80
+ Connection:
81
+ - keep-alive
82
+ body:
83
+ encoding: UTF-8
84
+ string: |-
85
+ {
86
+ "result": [
87
+ {
88
+ "postcode": "CM8 1EF",
89
+ "northings": 213679,
90
+ "eastings": 581461,
91
+ "longitude": 0.629834723775309,
92
+ "latitude": 51.7923246977375,
93
+ "distance": 3.64568457
94
+ },
95
+ {
96
+ "postcode": "CM8 1EU",
97
+ "northings": 213650,
98
+ "eastings": 581507,
99
+ "longitude": 0.630485817275861,
100
+ "latitude": 51.7920493205979,
101
+ "distance": 54.926867768
102
+ },
103
+ {
104
+ "postcode": "CM8 1PH",
105
+ "northings": 213741,
106
+ "eastings": 581420,
107
+ "longitude": 0.629273287180607,
108
+ "latitude": 51.7928948417687,
109
+ "distance": 75.504780435
110
+ },
111
+ {
112
+ "postcode": "CM8 1EN",
113
+ "northings": 213664,
114
+ "eastings": 581366,
115
+ "longitude": 0.628450923709479,
116
+ "latitude": 51.7922207606932,
117
+ "distance": 93.496753053
118
+ },
119
+ {
120
+ "postcode": "CM8 1PQ",
121
+ "northings": 213752,
122
+ "eastings": 581403,
123
+ "longitude": 0.629032807022633,
124
+ "latitude": 51.7929991478552,
125
+ "distance": 94.090672986
126
+ }
127
+ ],
128
+ "code": 2000,
129
+ "message": "Success"
130
+ }
131
+ http_version:
132
+ recorded_at: Fri, 12 Dec 2014 17:40:28 GMT
133
133
  recorded_with: VCR 2.9.3