dnsmadeeasy-rest-api 1.0.3 → 1.0.4
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/.rubocop.yml +6 -0
- data/README.md +4 -0
- data/Rakefile +21 -1
- data/dnsmadeeasy-rest-api.gemspec +3 -1
- data/lib/dnsmadeeasy-rest-api.rb +52 -37
- data/spec/lib/dnsmadeeasyapi-rest-api_spec.rb +84 -10
- metadata +39 -11
- data/Gemfile.lock +0 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3987a44ee6657d03fe2746d75007b772672c1899
|
|
4
|
+
data.tar.gz: 9b94abad19f6ebc718369b1be6ac7aabf68e738b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 17ba812ec3bad74eacfbd157a8b8b8697b1b2d7ebf60379d8141a6b51d1bbf240440788daf2c344196ed64c6fe9d461943231f69178f1bb502427f722a80d8b4
|
|
7
|
+
data.tar.gz: 6f2873e2ad365e6a0f3125f053762887019834fea444d0db5e1f78178f510ca39bf1e6ff79ca79897f974e7c96e7e36f86a07fa729517bed8120e8e99b046d3a
|
data/.rubocop.yml
ADDED
data/README.md
CHANGED
|
@@ -93,6 +93,10 @@ api.delete_record('hello.example.com', 123)
|
|
|
93
93
|
# To delete multiple records:
|
|
94
94
|
|
|
95
95
|
api.delete_records('hello.example.com', [123, 143])
|
|
96
|
+
|
|
97
|
+
# To delete all records in the domain:
|
|
98
|
+
|
|
99
|
+
api.delete_all_records('hello.example.com')
|
|
96
100
|
```
|
|
97
101
|
|
|
98
102
|
To create a record:
|
data/Rakefile
CHANGED
|
@@ -1,2 +1,22 @@
|
|
|
1
|
-
require
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
2
|
+
require 'rspec/core/rake_task'
|
|
3
|
+
require 'rubocop/rake_task'
|
|
2
4
|
|
|
5
|
+
namespace :style do
|
|
6
|
+
desc 'Run Ruby style checks'
|
|
7
|
+
RuboCop::RakeTask.new(:ruby) do |t|
|
|
8
|
+
t.options = ['-D']
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
desc 'Run all style checks'
|
|
13
|
+
task style: ['style:ruby']
|
|
14
|
+
|
|
15
|
+
desc 'Run CRSpec unit tests'
|
|
16
|
+
RSpec::Core::RakeTask.new(:unit) do |t|
|
|
17
|
+
t.rspec_opts = '--color --format documentation'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# The default rake task should just run it all
|
|
21
|
+
desc 'Run all tests'
|
|
22
|
+
task default: %w(style unit)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = 'dnsmadeeasy-rest-api'
|
|
3
|
-
s.version = '1.0.
|
|
3
|
+
s.version = '1.0.4'
|
|
4
4
|
s.authors = ['Arnoud Vermeer', 'Paul Henry', 'James Hart']
|
|
5
5
|
s.email = ['a.vermeer@freshway.biz', 'ops@wanelo.com']
|
|
6
6
|
s.license = 'Apache'
|
|
@@ -12,4 +12,6 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
|
|
13
13
|
s.add_development_dependency 'rspec'
|
|
14
14
|
s.add_development_dependency 'webmock'
|
|
15
|
+
s.add_development_dependency 'bundler'
|
|
16
|
+
s.add_development_dependency 'rubocop'
|
|
15
17
|
end
|
data/lib/dnsmadeeasy-rest-api.rb
CHANGED
|
@@ -4,16 +4,17 @@ require 'json'
|
|
|
4
4
|
require 'uri'
|
|
5
5
|
require 'net/http'
|
|
6
6
|
|
|
7
|
+
# A class to interact with the DNSMadeEasy REST API v2.0
|
|
7
8
|
class DnsMadeEasy
|
|
8
|
-
|
|
9
9
|
attr_accessor :base_uri
|
|
10
10
|
|
|
11
|
-
def initialize
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
def initialize(api_key, api_secret, sandbox = false, options = {})
|
|
12
|
+
fail 'api_key is undefined' unless api_key
|
|
13
|
+
fail 'api_secret is undefined' unless api_secret
|
|
14
14
|
|
|
15
15
|
@api_key = api_key
|
|
16
16
|
@api_secret = api_secret
|
|
17
|
+
@options = options
|
|
17
18
|
|
|
18
19
|
if sandbox
|
|
19
20
|
self.base_uri = 'https://api.sandbox.dnsmadeeasy.com/V2.0'
|
|
@@ -58,80 +59,90 @@ class DnsMadeEasy
|
|
|
58
59
|
get "/dns/managed/#{get_id_by_domain(domain_name)}/records"
|
|
59
60
|
end
|
|
60
61
|
|
|
62
|
+
def find(domain_name, name, type)
|
|
63
|
+
records = records_for(domain_name)
|
|
64
|
+
records['data'].detect { |r| r['name'] == name && r['type'] == type }
|
|
65
|
+
end
|
|
66
|
+
|
|
61
67
|
def find_record_id(domain_name, name, type)
|
|
62
68
|
records = records_for(domain_name)
|
|
63
69
|
|
|
64
|
-
records['data'].select { |r| r['name'] == name && r['type'] == type }
|
|
65
|
-
|
|
70
|
+
records['data'].select { |r| r['name'] == name && r['type'] == type }.map { |r| r['id'] }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def delete_record(domain_name, record_id)
|
|
74
|
+
delete "/dns/managed/#{get_id_by_domain(domain_name)}/records/#{record_id}/"
|
|
66
75
|
end
|
|
67
76
|
|
|
68
77
|
def delete_records(domain_name, ids = [])
|
|
69
|
-
|
|
78
|
+
return if ids.empty?
|
|
79
|
+
domain_id = get_id_by_domain(domain_name)
|
|
70
80
|
|
|
71
|
-
delete "/dns/managed/#{
|
|
81
|
+
delete "/dns/managed/#{domain_id}/records?ids=#{ids.join(',')}"
|
|
72
82
|
end
|
|
73
83
|
|
|
74
|
-
def
|
|
75
|
-
|
|
84
|
+
def delete_all_records(domain_name)
|
|
85
|
+
domain_id = get_id_by_domain(domain_name)
|
|
86
|
+
delete "/dns/managed/#{domain_id}/records"
|
|
76
87
|
end
|
|
77
88
|
|
|
78
89
|
def create_record(domain_name, name, type, value, options = {})
|
|
79
|
-
body = {
|
|
90
|
+
body = { 'name' => name, 'type' => type, 'value' => value, 'ttl' => 3600, 'gtdLocation' => 'DEFAULT' }
|
|
80
91
|
post "/dns/managed/#{get_id_by_domain(domain_name)}/records/", body.merge(options)
|
|
81
92
|
end
|
|
82
93
|
|
|
83
94
|
def create_a_record(domain_name, name, value, options = {})
|
|
84
|
-
#
|
|
85
|
-
create_record domain_name, name,
|
|
95
|
+
# TODO: match IPv4 for value
|
|
96
|
+
create_record domain_name, name, 'A', value, options
|
|
86
97
|
end
|
|
87
98
|
|
|
88
99
|
def create_aaaa_record(domain_name, name, value, options = {})
|
|
89
|
-
#
|
|
90
|
-
create_record domain_name, name,
|
|
100
|
+
# TODO: match IPv6 for value
|
|
101
|
+
create_record domain_name, name, 'AAAA', value, options
|
|
91
102
|
end
|
|
92
103
|
|
|
93
104
|
def create_ptr_record(domain_name, name, value, options = {})
|
|
94
|
-
#
|
|
95
|
-
create_record domain_name, name,
|
|
105
|
+
# TODO: match PTR value
|
|
106
|
+
create_record domain_name, name, 'PTR', value, options
|
|
96
107
|
end
|
|
97
108
|
|
|
98
109
|
def create_txt_record(domain_name, name, value, options = {})
|
|
99
|
-
#
|
|
100
|
-
create_record domain_name, name,
|
|
110
|
+
# TODO: match TXT value
|
|
111
|
+
create_record domain_name, name, 'TXT', value, options
|
|
101
112
|
end
|
|
102
113
|
|
|
103
114
|
def create_cname_record(domain_name, name, value, options = {})
|
|
104
|
-
#
|
|
105
|
-
create_record domain_name, name,
|
|
115
|
+
# TODO: match CNAME value
|
|
116
|
+
create_record domain_name, name, 'CNAME', value, options
|
|
106
117
|
end
|
|
107
118
|
|
|
108
119
|
def create_ns_record(domain_name, name, value, options = {})
|
|
109
|
-
#
|
|
110
|
-
create_record domain_name, name,
|
|
120
|
+
# TODO: match domainname for value
|
|
121
|
+
create_record domain_name, name, 'NS', value, options
|
|
111
122
|
end
|
|
112
123
|
|
|
113
124
|
def create_spf_record(domain_name, name, value, options = {})
|
|
114
|
-
create_record domain_name, name,
|
|
125
|
+
create_record domain_name, name, 'SPF', value, options
|
|
115
126
|
end
|
|
116
127
|
|
|
117
128
|
def create_mx_record(domain_name, name, priority, value, options = {})
|
|
118
|
-
options.merge!(
|
|
129
|
+
options.merge!('mxLevel' => priority)
|
|
119
130
|
|
|
120
|
-
create_record domain_name, name,
|
|
131
|
+
create_record domain_name, name, 'MX', value, options
|
|
121
132
|
end
|
|
122
133
|
|
|
123
134
|
def create_srv_record(domain_name, name, priority, weight, port, value, options = {})
|
|
124
|
-
options.merge!(
|
|
125
|
-
create_record domain_name, name,
|
|
135
|
+
options.merge!('priority' => priority, 'weight' => weight, 'port' => port)
|
|
136
|
+
create_record domain_name, name, 'SRV', value, options
|
|
126
137
|
end
|
|
127
138
|
|
|
128
|
-
def create_httpred_record(domain_name, name, value, redirectType =
|
|
129
|
-
options.merge!(
|
|
130
|
-
create_record domain_name, name,
|
|
139
|
+
def create_httpred_record(domain_name, name, value, redirectType = 'STANDARD - 302', description = '', keywords = '', title = '', options = {})
|
|
140
|
+
options.merge!('redirectType' => redirectType, 'description' => description, 'keywords' => keywords, 'title' => title)
|
|
141
|
+
create_record domain_name, name, 'HTTPRED', value, options
|
|
131
142
|
end
|
|
132
143
|
|
|
133
144
|
def update_record(domain, record_id, name, type, value, options = {})
|
|
134
|
-
body = {
|
|
145
|
+
body = { 'name' => name, 'type' => type, 'value' => value, 'ttl' => 3600, 'gtdLocation' => 'DEFAULT', 'id' => record_id }
|
|
135
146
|
put "/dns/managed/#{get_id_by_domain(domain)}/records/#{record_id}/", body.merge(options)
|
|
136
147
|
end
|
|
137
148
|
|
|
@@ -139,13 +150,13 @@ class DnsMadeEasy
|
|
|
139
150
|
|
|
140
151
|
def get(path)
|
|
141
152
|
request(path) do |uri|
|
|
142
|
-
Net::HTTP::Get.new(uri
|
|
153
|
+
Net::HTTP::Get.new(uri)
|
|
143
154
|
end
|
|
144
155
|
end
|
|
145
156
|
|
|
146
157
|
def delete(path, body = nil)
|
|
147
158
|
request(path) do |uri|
|
|
148
|
-
req = Net::HTTP::Delete.new(uri
|
|
159
|
+
req = Net::HTTP::Delete.new(uri)
|
|
149
160
|
req.body = body.to_json if body
|
|
150
161
|
req
|
|
151
162
|
end
|
|
@@ -153,7 +164,7 @@ class DnsMadeEasy
|
|
|
153
164
|
|
|
154
165
|
def put(path, body = nil)
|
|
155
166
|
request(path) do |uri|
|
|
156
|
-
req = Net::HTTP::Put.new(uri
|
|
167
|
+
req = Net::HTTP::Put.new(uri)
|
|
157
168
|
req.body = body.to_json if body
|
|
158
169
|
req
|
|
159
170
|
end
|
|
@@ -161,7 +172,7 @@ class DnsMadeEasy
|
|
|
161
172
|
|
|
162
173
|
def post(path, body)
|
|
163
174
|
request(path) do |uri|
|
|
164
|
-
req = Net::HTTP::Post.new(uri
|
|
175
|
+
req = Net::HTTP::Post.new(uri)
|
|
165
176
|
req.body = body.to_json
|
|
166
177
|
req
|
|
167
178
|
end
|
|
@@ -172,6 +183,8 @@ class DnsMadeEasy
|
|
|
172
183
|
|
|
173
184
|
http = Net::HTTP.new(uri.host, uri.port)
|
|
174
185
|
http.use_ssl = true
|
|
186
|
+
http.open_timeout = @options[:open_timeout] if @options.key?(:open_timeout)
|
|
187
|
+
http.read_timeout = @options[:read_timeout] if @options.key?(:read_timeout)
|
|
175
188
|
|
|
176
189
|
request = yield(uri)
|
|
177
190
|
|
|
@@ -180,7 +193,9 @@ class DnsMadeEasy
|
|
|
180
193
|
end
|
|
181
194
|
|
|
182
195
|
response = http.request(request)
|
|
183
|
-
|
|
196
|
+
response.value # raise Net::HTTPServerException unless response was 2xx
|
|
197
|
+
|
|
198
|
+
unparsed_json = response.body.to_s.empty? ? '{}' : response.body
|
|
184
199
|
|
|
185
200
|
JSON.parse(unparsed_json)
|
|
186
201
|
end
|
|
@@ -111,6 +111,25 @@ describe DnsMadeEasy do
|
|
|
111
111
|
end
|
|
112
112
|
end
|
|
113
113
|
|
|
114
|
+
describe '#find' do
|
|
115
|
+
let(:records_for_response) do
|
|
116
|
+
{
|
|
117
|
+
'data' => [
|
|
118
|
+
{ 'name' => 'demo', 'type' => 'A', 'id' => 123},
|
|
119
|
+
{ 'name' => 'demo', 'type' => 'A', 'id' => 143}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
before do
|
|
125
|
+
subject.stub(:records_for).with('something.wanelo.com').and_return(records_for_response)
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
it 'finds the first record that matches name and type' do
|
|
129
|
+
expect(subject.find('something.wanelo.com', 'demo', 'A')).to eq({ 'name' => 'demo', 'type' => 'A', 'id' => 123})
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
114
133
|
describe '#find_record_id' do
|
|
115
134
|
let(:records_for_response) do
|
|
116
135
|
{
|
|
@@ -132,17 +151,47 @@ describe DnsMadeEasy do
|
|
|
132
151
|
|
|
133
152
|
describe '#delete_records' do
|
|
134
153
|
let(:response) { "{}" }
|
|
154
|
+
let(:domain) { 'something.wanelo.com' }
|
|
155
|
+
let(:domain_id) { 123 }
|
|
135
156
|
|
|
136
|
-
|
|
137
|
-
|
|
157
|
+
context 'with an array of record ids' do
|
|
158
|
+
let(:ids) { [147, 159] }
|
|
159
|
+
|
|
160
|
+
before do
|
|
161
|
+
subject.stub(:get_id_by_domain).with(domain).and_return(domain_id)
|
|
162
|
+
|
|
163
|
+
stub_request(:delete, "https://api.dnsmadeeasy.com/V2.0/dns/managed/#{domain_id}/records?ids=#{ids.join(',')}").
|
|
164
|
+
with(headers: request_headers).
|
|
165
|
+
to_return(:status => 200, :body => response, :headers => {})
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
it 'deletes a list of records from a given domain' do
|
|
169
|
+
expect(subject.delete_records('something.wanelo.com', ids)).to eq({})
|
|
170
|
+
end
|
|
138
171
|
end
|
|
139
172
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
173
|
+
context 'with an empty array' do
|
|
174
|
+
it 'returns early without deleting anything' do
|
|
175
|
+
expect(subject.delete_records('something.wanelo.com', [])).to eq(nil)
|
|
176
|
+
end
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
describe '#delete_all_records' do
|
|
181
|
+
let(:response) { "{}" }
|
|
182
|
+
let(:domain) { 'something.wanelo.com' }
|
|
183
|
+
let(:domain_id) { 123 }
|
|
184
|
+
|
|
185
|
+
before do
|
|
186
|
+
subject.stub(:get_id_by_domain).with(domain).and_return(domain_id)
|
|
187
|
+
|
|
188
|
+
stub_request(:delete, "https://api.dnsmadeeasy.com/V2.0/dns/managed/#{domain_id}/records").
|
|
189
|
+
with(headers: request_headers).
|
|
143
190
|
to_return(:status => 200, :body => response, :headers => {})
|
|
191
|
+
end
|
|
144
192
|
|
|
145
|
-
|
|
193
|
+
it 'deletes all records from the domain' do
|
|
194
|
+
expect(subject.delete_all_records('something.wanelo.com')).to eq({})
|
|
146
195
|
end
|
|
147
196
|
end
|
|
148
197
|
|
|
@@ -242,14 +291,39 @@ describe DnsMadeEasy do
|
|
|
242
291
|
to_return(:status => 200, :body => response, :headers => {})
|
|
243
292
|
|
|
244
293
|
|
|
245
|
-
expect(subject.update_record('something.wanelo.com', 21, 'mail', 'A', '1.1.1.1',
|
|
294
|
+
expect(subject.update_record('something.wanelo.com', 21, 'mail', 'A', '1.1.1.1', {})).to eq({})
|
|
246
295
|
end
|
|
247
296
|
end
|
|
248
297
|
|
|
249
298
|
describe "#request" do
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
299
|
+
before do
|
|
300
|
+
stub_request(:get, "https://api.dnsmadeeasy.com/V2.0/some_path").
|
|
301
|
+
with(headers: request_headers).
|
|
302
|
+
to_return(status: status, body: body, headers: {})
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
let(:response) do
|
|
306
|
+
subject.send(:request, "/some_path") { |uri|
|
|
307
|
+
Net::HTTP::Get.new(uri.path)
|
|
308
|
+
}
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
context "with a 2xx, empty-string response" do
|
|
312
|
+
let(:status) { 200 }
|
|
313
|
+
let(:body) { "" }
|
|
314
|
+
|
|
315
|
+
it "handles gracefully" do
|
|
316
|
+
expect(response).to eq({})
|
|
317
|
+
end
|
|
318
|
+
end
|
|
319
|
+
|
|
320
|
+
context "with a non-2xx response" do
|
|
321
|
+
let(:status) { 400 }
|
|
322
|
+
let(:body) { "<xml> JSON.parse won't like this very much </xml>" }
|
|
323
|
+
|
|
324
|
+
it "raises a Net::HTTPServerException instead of a JSON::ParserError" do
|
|
325
|
+
expect { response }.to raise_exception(Net::HTTPServerException)
|
|
326
|
+
end
|
|
253
327
|
end
|
|
254
328
|
end
|
|
255
329
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dnsmadeeasy-rest-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Arnoud Vermeer
|
|
@@ -10,34 +10,62 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2016-06-28 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: rspec
|
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
|
18
18
|
requirements:
|
|
19
|
-
- -
|
|
19
|
+
- - ">="
|
|
20
20
|
- !ruby/object:Gem::Version
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
25
|
requirements:
|
|
26
|
-
- -
|
|
26
|
+
- - ">="
|
|
27
27
|
- !ruby/object:Gem::Version
|
|
28
28
|
version: '0'
|
|
29
29
|
- !ruby/object:Gem::Dependency
|
|
30
30
|
name: webmock
|
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
|
32
32
|
requirements:
|
|
33
|
-
- -
|
|
33
|
+
- - ">="
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
35
|
version: '0'
|
|
36
36
|
type: :development
|
|
37
37
|
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
|
-
- -
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '0'
|
|
43
|
+
- !ruby/object:Gem::Dependency
|
|
44
|
+
name: bundler
|
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '0'
|
|
50
|
+
type: :development
|
|
51
|
+
prerelease: false
|
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
53
|
+
requirements:
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: '0'
|
|
57
|
+
- !ruby/object:Gem::Dependency
|
|
58
|
+
name: rubocop
|
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
|
60
|
+
requirements:
|
|
61
|
+
- - ">="
|
|
62
|
+
- !ruby/object:Gem::Version
|
|
63
|
+
version: '0'
|
|
64
|
+
type: :development
|
|
65
|
+
prerelease: false
|
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
67
|
+
requirements:
|
|
68
|
+
- - ">="
|
|
41
69
|
- !ruby/object:Gem::Version
|
|
42
70
|
version: '0'
|
|
43
71
|
description: DNS Made Easy V2.0 REST API client for Ruby. With tests and no dependencies.
|
|
@@ -48,9 +76,9 @@ executables: []
|
|
|
48
76
|
extensions: []
|
|
49
77
|
extra_rdoc_files: []
|
|
50
78
|
files:
|
|
51
|
-
- .gitignore
|
|
79
|
+
- ".gitignore"
|
|
80
|
+
- ".rubocop.yml"
|
|
52
81
|
- Gemfile
|
|
53
|
-
- Gemfile.lock
|
|
54
82
|
- LICENSE.txt
|
|
55
83
|
- README.md
|
|
56
84
|
- Rakefile
|
|
@@ -68,17 +96,17 @@ require_paths:
|
|
|
68
96
|
- lib
|
|
69
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
98
|
requirements:
|
|
71
|
-
- -
|
|
99
|
+
- - ">="
|
|
72
100
|
- !ruby/object:Gem::Version
|
|
73
101
|
version: '0'
|
|
74
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
103
|
requirements:
|
|
76
|
-
- -
|
|
104
|
+
- - ">="
|
|
77
105
|
- !ruby/object:Gem::Version
|
|
78
106
|
version: '0'
|
|
79
107
|
requirements: []
|
|
80
108
|
rubyforge_project:
|
|
81
|
-
rubygems_version: 2.
|
|
109
|
+
rubygems_version: 2.4.5.1
|
|
82
110
|
signing_key:
|
|
83
111
|
specification_version: 4
|
|
84
112
|
summary: DNS Made Easy V2.0 REST API client for Ruby
|
data/Gemfile.lock
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
PATH
|
|
2
|
-
remote: .
|
|
3
|
-
specs:
|
|
4
|
-
dnsmadeeasy-rest-api (1.0.1)
|
|
5
|
-
|
|
6
|
-
GEM
|
|
7
|
-
remote: https://rubygems.org/
|
|
8
|
-
specs:
|
|
9
|
-
addressable (2.3.6)
|
|
10
|
-
crack (0.4.2)
|
|
11
|
-
safe_yaml (~> 1.0.0)
|
|
12
|
-
diff-lcs (1.2.5)
|
|
13
|
-
rspec (2.14.1)
|
|
14
|
-
rspec-core (~> 2.14.0)
|
|
15
|
-
rspec-expectations (~> 2.14.0)
|
|
16
|
-
rspec-mocks (~> 2.14.0)
|
|
17
|
-
rspec-core (2.14.8)
|
|
18
|
-
rspec-expectations (2.14.5)
|
|
19
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
|
20
|
-
rspec-mocks (2.14.6)
|
|
21
|
-
safe_yaml (1.0.3)
|
|
22
|
-
webmock (1.18.0)
|
|
23
|
-
addressable (>= 2.3.6)
|
|
24
|
-
crack (>= 0.3.2)
|
|
25
|
-
|
|
26
|
-
PLATFORMS
|
|
27
|
-
ruby
|
|
28
|
-
|
|
29
|
-
DEPENDENCIES
|
|
30
|
-
dnsmadeeasy-rest-api!
|
|
31
|
-
rspec
|
|
32
|
-
webmock
|