rdap 0.1.3 → 0.1.5
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 +4 -4
- data/Gemfile.lock +18 -18
- data/README.md +2 -0
- data/lib/rdap.rb +10 -2
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c581a8dc72e90041dca43e12e4ae618cc04dd45287326f561c20c4288da3c474
|
4
|
+
data.tar.gz: 5a89c282b3fa0dd1ff9b26385ec1e226fa81e379cac126af2356d8f53874a699
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2b6feb519a91e27515cc97d05d23c82feef65b8dfb6c8eee8e8096d3b7ae39304061a4a09713addf34ec415f722544e4a3b5e6e744c8cb379b78b6a7fc3bfbc
|
7
|
+
data.tar.gz: d1d9276926e98654b6fb30d0885d580c495d51f0b23718854128a2c3c8232f38de92a3f777eda482c0a852dc00661c01cff9dc03980ff15a52d2c7645fdd66cc
|
data/Gemfile.lock
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rdap (0.1.
|
4
|
+
rdap (0.1.4)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
addressable (2.8.
|
10
|
-
public_suffix (>= 2.0.2, <
|
9
|
+
addressable (2.8.1)
|
10
|
+
public_suffix (>= 2.0.2, < 6.0)
|
11
11
|
crack (0.4.5)
|
12
12
|
rexml
|
13
|
-
diff-lcs (1.
|
13
|
+
diff-lcs (1.5.0)
|
14
14
|
hashdiff (1.0.1)
|
15
|
-
public_suffix (
|
15
|
+
public_suffix (5.0.1)
|
16
16
|
rake (13.0.6)
|
17
17
|
rexml (3.2.5)
|
18
|
-
rspec (3.
|
19
|
-
rspec-core (~> 3.
|
20
|
-
rspec-expectations (~> 3.
|
21
|
-
rspec-mocks (~> 3.
|
22
|
-
rspec-core (3.
|
23
|
-
rspec-support (~> 3.
|
24
|
-
rspec-expectations (3.
|
18
|
+
rspec (3.12.0)
|
19
|
+
rspec-core (~> 3.12.0)
|
20
|
+
rspec-expectations (~> 3.12.0)
|
21
|
+
rspec-mocks (~> 3.12.0)
|
22
|
+
rspec-core (3.12.0)
|
23
|
+
rspec-support (~> 3.12.0)
|
24
|
+
rspec-expectations (3.12.1)
|
25
25
|
diff-lcs (>= 1.2.0, < 2.0)
|
26
|
-
rspec-support (~> 3.
|
27
|
-
rspec-mocks (3.
|
26
|
+
rspec-support (~> 3.12.0)
|
27
|
+
rspec-mocks (3.12.1)
|
28
28
|
diff-lcs (>= 1.2.0, < 2.0)
|
29
|
-
rspec-support (~> 3.
|
30
|
-
rspec-support (3.
|
31
|
-
vcr (6.
|
32
|
-
webmock (3.
|
29
|
+
rspec-support (~> 3.12.0)
|
30
|
+
rspec-support (3.12.0)
|
31
|
+
vcr (6.1.0)
|
32
|
+
webmock (3.18.1)
|
33
33
|
addressable (>= 2.8.0)
|
34
34
|
crack (>= 0.3.2)
|
35
35
|
hashdiff (>= 0.4.0, < 2.0.0)
|
data/README.md
CHANGED
@@ -84,6 +84,8 @@ The gem make a query to one of the publicly available RDAP bootstrap server (the
|
|
84
84
|
|
85
85
|
## Changelog
|
86
86
|
|
87
|
+
- **0.1.5** (2022-12-29) - Add `application/json, */*` fallback Accept types to support rdap.nic.fr which does not like `application/rdap+json` (as of 2022-12-29). I also contacted them to report this issue.
|
88
|
+
- **0.1.4** (2022-02-01) - Wrap JSON parser errors as RDAP::InvalidReponse and also raise RDAP::EmptyResponse when body is missing
|
87
89
|
- **0.1.3** (2022-01-10) - Wrap SSL errors as RDAP::SSLError < ServerError < Error
|
88
90
|
- **0.1.2** (2022-01-07) - Added HTTP headers customization
|
89
91
|
- **0.1.1** (2021-12-19) - Added TooManyRequests expection in case of 429
|
data/lib/rdap.rb
CHANGED
@@ -2,17 +2,20 @@ require 'json'
|
|
2
2
|
require 'net/http'
|
3
3
|
|
4
4
|
module RDAP
|
5
|
-
VERSION = "0.1.
|
5
|
+
VERSION = "0.1.5"
|
6
6
|
BOOTSTRAP = "https://rdap.org/"
|
7
7
|
TYPES = [:domain, :ip, :autnum].freeze
|
8
8
|
HEADERS = {
|
9
9
|
"User-Agent" => "RDAP ruby gem (#{VERSION})",
|
10
|
-
"Accept" => "application/rdap+json"
|
10
|
+
"Accept" => "application/rdap+json, application/json, */*;q=0.8",
|
11
|
+
# Had to include other types here because rdap.nic.fr returns an error with only rdap+json -_-
|
11
12
|
}
|
12
13
|
|
13
14
|
class Error < StandardError; end
|
14
15
|
class ServerError < Error; end
|
15
16
|
class SSLError < ServerError; end
|
17
|
+
class EmptyResponse < ServerError; end
|
18
|
+
class InvalidResponse < ServerError; end
|
16
19
|
class NotFound < Error; end
|
17
20
|
class TooManyRequests < Error; end
|
18
21
|
|
@@ -48,6 +51,9 @@ module RDAP
|
|
48
51
|
response = http.get(uri.path, HEADERS.merge(headers))
|
49
52
|
case response
|
50
53
|
when Net::HTTPSuccess
|
54
|
+
if !response.body
|
55
|
+
raise EmptyResponse.new("[#{response.code}] #{response.message}")
|
56
|
+
end
|
51
57
|
document = JSON.parse(response.body)
|
52
58
|
if document["errorCode"]
|
53
59
|
raise ServerError.new("[#{document["errorCode"]}] #{document["title"]} (#{uri})")
|
@@ -69,5 +75,7 @@ module RDAP
|
|
69
75
|
end
|
70
76
|
rescue OpenSSL::SSL::SSLError => e
|
71
77
|
raise SSLError.new("#{e.message} (#{uri.host})")
|
78
|
+
rescue JSON::ParserError => e
|
79
|
+
raise InvalidResponse.new("JSON parser error: #{e.message}")
|
72
80
|
end
|
73
81
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrien Rey-Jarthon
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description:
|
14
14
|
email:
|
15
15
|
- jobs@adrienjarthon.com
|
16
16
|
executables: []
|
@@ -29,7 +29,7 @@ files:
|
|
29
29
|
homepage: https://github.com/jarthod/rdap
|
30
30
|
licenses: []
|
31
31
|
metadata: {}
|
32
|
-
post_install_message:
|
32
|
+
post_install_message:
|
33
33
|
rdoc_options: []
|
34
34
|
require_paths:
|
35
35
|
- lib
|
@@ -44,8 +44,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '0'
|
46
46
|
requirements: []
|
47
|
-
rubygems_version: 3.3.
|
48
|
-
signing_key:
|
47
|
+
rubygems_version: 3.3.7
|
48
|
+
signing_key:
|
49
49
|
specification_version: 4
|
50
50
|
summary: A minimal Ruby client to query RDAP APIs though a bootstrap server
|
51
51
|
test_files: []
|