whoisxmlapi2 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: e6cbd991e4b0f167cec3709c978ead0b4188980724ce30810992e30a616fa84b
4
- data.tar.gz: eaa417be9860ad92f76cf17ffa9c2e1163ceaccd7323aea51815c033bb587103
3
+ metadata.gz: 8f3e0b0c78161a79947adaf6f7c19fd203de96584d569dc416c1d00a76d82beb
4
+ data.tar.gz: a7824f0d38b1faac430dea297d22e1fd83d4d3b6a677ce55561a66fe2fe23440
5
5
  SHA512:
6
- metadata.gz: 3c329ed3911a269390bbc13ff594bebfd9ea35802343e669ab216a7d2649bf6bf6980015a04f3cb83681af2b589e9da8cc729d86479c3dfcb9daa1e31b1e184c
7
- data.tar.gz: 07e2ec1634c2f6d8e898e95f4be88f06fa7036f044692747877f1272edffb150b4f2a2ed2d5af6b0c1880ed26c612bc4032ce57cc6f810aaaf5596a78f0b5f63
6
+ metadata.gz: bb032822ed9d0033af75ebcd04cf0a286bb64e2d170603c88731f18773f78b66b9cbb4a428cae62493265eed74d44ee797f5675758c9ac85cf44ff6a6e000eaf
7
+ data.tar.gz: 5ef1abb7b4f9236e0b1d097e4a406a95e742315993a7095d584214c7c234ce1d53422b72f44b520c60eb2ad25ae2b8a044a9748a0ca434d7673967eaa3114bb7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- whoisxmlapi2 (0.1.0)
4
+ whoisxmlapi2 (0.1.1)
5
5
  json (>= 2.0)
6
6
  openssl (>= 2.0)
7
7
 
data/README.md CHANGED
@@ -16,6 +16,28 @@ Or install it yourself as:
16
16
 
17
17
  ## Usage
18
18
 
19
+ ### API version 2.0
20
+
21
+ Provide your credentials
22
+
23
+ ```ruby
24
+ WhoisXMLAPI2.configure do |config|
25
+ config.api_key = "your-api-key"
26
+ end
27
+ ```
28
+
29
+ Make a request
30
+
31
+ ```ruby
32
+ WhoisXMLAPI2::Request.go("cnn.com")
33
+ # => {"WhoisRecord"=>{"createdDate"=>"1993-09-22T04:00:00Z", ...
34
+ ```
35
+
36
+ The output is hash parsed from the the API's JSON response.
37
+
38
+
39
+ ### API Version 1.0
40
+
19
41
  Provide your credentials
20
42
 
21
43
  ```ruby
@@ -29,15 +51,15 @@ end
29
51
  Make a request
30
52
 
31
53
  ```ruby
32
- WhoisXMLAPI2::Request.go("cnn.com")
54
+ WhoisXMLAPI2::Request::V1.go("cnn.com")
33
55
  # => {"WhoisRecord"=>{"createdDate"=>"1993-09-22T04:00:00Z", ...
34
56
  ```
35
57
 
36
- The output is the API response.
58
+ The output is hash parsed from the the API's JSON response.
37
59
 
38
60
  ## Development
39
61
 
40
- TODO: This
62
+ File bugs against the GitHub issue tracker and pull requests to match, where possible.
41
63
 
42
64
  ## Contributing
43
65
 
@@ -9,6 +9,11 @@ module WhoisXMLAPI2
9
9
  end
10
10
 
11
11
  def self.set?
12
+ WhoisXMLAPI2.configuration.url && \
13
+ WhoisXMLAPI2.configuration.api_key
14
+ end
15
+
16
+ def self.set_v1?
12
17
  WhoisXMLAPI2.configuration.url && \
13
18
  WhoisXMLAPI2.configuration.username && \
14
19
  WhoisXMLAPI2.configuration.api_key && \
@@ -2,25 +2,12 @@ module WhoisXMLAPI2
2
2
  class Request
3
3
  class << self
4
4
  def go(domain)
5
- timestamp = (Time.now.to_f * 1000).to_i
6
- digest = generate_digest(timestamp)
7
-
8
- JSON.parse(open(config.url + params(digest, domain, timestamp)).read)
5
+ JSON.parse(open(config.url + params(domain)).read)
9
6
  end
10
7
 
11
8
  private
12
- def generate_digest(timestamp)
13
- digest = config.username + timestamp.to_s + config.api_key
14
-
15
- URI.escape(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::MD5.new, config.secret, digest))
16
- end
17
-
18
- def params(digest, domain, timestamp)
19
- "requestObject=#{prepare_data(timestamp)}&digest=#{digest}&domainName=#{domain}&outputFormat=json"
20
- end
21
-
22
- def prepare_data(timestamp)
23
- Base64.encode64( { u: config.username, t: timestamp }.to_json )
9
+ def params(domain)
10
+ "apiKey=#{config.api_key}&domainName=#{domain}&outputFormat=json"
24
11
  end
25
12
 
26
13
  def config
@@ -29,5 +16,37 @@ module WhoisXMLAPI2
29
16
  WhoisXMLAPI2.configuration
30
17
  end
31
18
  end
19
+
20
+ class V1
21
+ class << self
22
+ def go(domain)
23
+ timestamp = (Time.now.to_f * 1000).to_i
24
+ digest = generate_digest(timestamp)
25
+
26
+ JSON.parse(open(config.url + params(digest, domain, timestamp)).read)
27
+ end
28
+
29
+ private
30
+ def generate_digest(timestamp)
31
+ digest = config.username + timestamp.to_s + config.api_key
32
+
33
+ URI.escape(OpenSSL::HMAC.hexdigest(OpenSSL::Digest::MD5.new, config.secret, digest))
34
+ end
35
+
36
+ def params(digest, domain, timestamp)
37
+ "requestObject=#{prepare_data(timestamp)}&digest=#{digest}&domainName=#{domain}&outputFormat=json"
38
+ end
39
+
40
+ def prepare_data(timestamp)
41
+ Base64.encode64( { u: config.username, t: timestamp }.to_json )
42
+ end
43
+
44
+ def config
45
+ raise 'Missing configuration' unless WhoisXMLAPI2::Configuration.set_v1?
46
+
47
+ WhoisXMLAPI2.configuration
48
+ end
49
+ end
50
+ end
32
51
  end
33
52
  end
@@ -1,3 +1,3 @@
1
1
  module WhoisXMLAPI2
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whoisxmlapi2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Nissen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-01 00:00:00.000000000 Z
11
+ date: 2018-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler