splicer-dns_made_easy 2.1.2 → 2.2.1

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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MjAzMjQ4NjVmNWZlMTdiZjAwZDMxMWNmMTlhMjJiODMzYzQ5OTA4Mg==
5
- data.tar.gz: !binary |-
6
- ZTk1MTA4Y2JmOTY3ZThhOGU2MDhhMzUyZTczN2I3ZGQ1ZDQzMjg0NQ==
2
+ SHA1:
3
+ metadata.gz: d6bf2988b2aba7b6bdb40c1f9e45d6a4e7ee1390
4
+ data.tar.gz: a44423d5eceb5c7857367687e94c25b4a749ad5c
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MzU0Y2RmOWM3NDQwMGYyNGM4Y2EyYjg5ZThmN2E3MDQ5MThlNDZhM2RmMGYy
10
- N2RkNDYxNTU4MmQzZmFhNWU4NGJmMTg1NjNiODdiNTg3YTAwODgzMzQ2ZTFh
11
- Mjc0NjRhYTI5ZTY1M2I4MzdiYTEwMTdjOGFkMGIxY2ZmZjhjN2I=
12
- data.tar.gz: !binary |-
13
- ZGQzNGY4MmJiYThlYTRiNzRiMjYxMzAzMTBhMTJlNjE3Yzc3ODNkNWM5NTQ5
14
- MDc4ODNhNTIwMGI1MTkyOWFhZDhiZDFkYTU2MzViZTU2ZTM3NDIyNmMwYjU1
15
- MGVjNmM5NDI1YWYyNDMxNjE2NGQ2MThmYjZiODFhMDEzOTZlM2Q=
6
+ metadata.gz: 0139e75437c1fcf56fc23c278c7cddce5c2fe675371d719f8d182c6b8ec4beeaa18e76e0933aa067e1996277e9f67ecb7e62239f2dddb649f091c4e9004d0c1a
7
+ data.tar.gz: 0fb5ff33f705d48272923adcb7a8ccf51f115fe46bda81837456d23273fc019d376cc81faefc569fa660b47ee0d5a9af3d37986c8381918d11b54bd3409a4e31
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .idea/
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 1.9.3
1
+ 2.1.6
@@ -3,7 +3,7 @@ module Splicer
3
3
 
4
4
  # @author Matthew A. Johnston <warmwaffles@gmail.com>
5
5
  class Provider < Splicer::Provider
6
- attr_reader :client
6
+ attr_reader :client, :records
7
7
 
8
8
  def initialize(config)
9
9
  @config = config
@@ -33,7 +33,7 @@ module Splicer
33
33
  def delete_record_in_zone(record, zone)
34
34
  Splicer.logger.debug "[SPLICER][DNSMADEEASY] #delete_record_in_zone record=#{record.inspect} zone=#{zone.inspect}"
35
35
  domain = find_domain(zone.name)
36
- return false unless domain.persisted?
36
+ return [] unless domain.persisted?
37
37
 
38
38
  records = find_records(record.name, record.type, domain.id)
39
39
  return false if records.empty?
@@ -64,18 +64,29 @@ module Splicer
64
64
  create_record(domain.id, record)
65
65
  end
66
66
 
67
+ def get_records_for(zone)
68
+ Splicer.logger.debug "[SPLICER][DNSMADEEASY] #get_records_for zone=#{zone.inspect}"
69
+ domain = find_domain(zone.name)
70
+ return false unless domain.persisted?
71
+ fetch_records(domain.id)
72
+ end
73
+
67
74
  private
68
75
 
69
76
  # @param [Integer] domain_id
70
77
  # @return [Array<Splicer::DnsMadeEasy::Record>]
71
78
  def fetch_records(domain_id)
72
- response = JSON.parse(client.get(record_url(domain_id)))
73
- list = []
74
- response['data'].each do |r|
75
- list << Record.new(r)
79
+ records_call = client.get(record_url(domain_id))
80
+ records = JSON.parse(records_call)['data']
81
+
82
+ @records = []
83
+ records.each do |record|
84
+ new_record = Record.new
85
+ record.each {|attribute, type| new_record.send(:"#{attribute}=", type)}
86
+ @records << new_record
76
87
  end
77
- list
78
- rescue Splicer::Errors::RequestError => error
88
+ @records
89
+ rescue
79
90
  []
80
91
  end
81
92
 
@@ -85,7 +96,7 @@ module Splicer
85
96
  def find_records(name, type, domain_id)
86
97
  payload = {
87
98
  type: type,
88
- recordName: name ? name : ''
99
+ recordName: name || ''
89
100
  }
90
101
  response = JSON.parse(client.get(record_url(domain_id), payload))
91
102
  if response['data'].is_a?(Array)
@@ -2,7 +2,10 @@ module Splicer
2
2
  module DnsMadeEasy
3
3
 
4
4
  class Record
5
- attr_reader :id, :type, :value, :ttl, :data
5
+ attr_accessor :name, :value, :id, :type, :dynamicDns,
6
+ :failed, :gtdLocation, :hardLink, :ttl,
7
+ :failover, :monitor, :sourceId, :source, :data
8
+
6
9
  def initialize(params={})
7
10
  @id = params['id']
8
11
  @type = params['type']
@@ -1,5 +1,5 @@
1
1
  module Splicer
2
2
  module DnsMadeEasy
3
- VERSION = "2.1.2"
3
+ VERSION = "2.2.1"
4
4
  end
5
5
  end
@@ -5,8 +5,14 @@ describe Splicer::DnsMadeEasy::Config do
5
5
 
6
6
  describe '#initialize' do
7
7
  subject { config }
8
- its(:key) { should eq('key') }
9
- its(:secret) { should eq('secret') }
8
+
9
+ it "should find :key to be equal to 'key'" do
10
+ expect(config.key).to eq('key')
11
+ end
12
+
13
+ it "should find :secret to be equal to 'secret'" do
14
+ expect(config.secret).to eq('secret')
15
+ end
10
16
  end
11
17
 
12
18
  describe '#provider' do
@@ -7,20 +7,26 @@ describe Splicer::DnsMadeEasy::Domain do
7
7
  { 'id' => 1 }
8
8
  end
9
9
  subject { Splicer::DnsMadeEasy::Domain.new(params) }
10
- its(:id) { should eq(1) }
11
- its(:data) { should eq(params) }
10
+
11
+ it 'should find :id to be equal to 1' do
12
+ expect(subject.id).to eq(1)
13
+ end
14
+
15
+ it 'should find :data to be equal to passed params' do
16
+ expect(subject.data).to eq(params)
17
+ end
12
18
  end
13
19
 
14
20
  describe '#persisted?' do
15
21
  subject { domain.persisted? }
16
22
  context 'when the domain is persisted' do
17
23
  let(:domain) { Splicer::DnsMadeEasy::Domain.new({'id' => 1}) }
18
- it { should be_true }
24
+ it { should be_truthy }
19
25
  end
20
26
 
21
27
  context 'when the domain is not persisted' do
22
28
  let(:domain) { Splicer::DnsMadeEasy::Domain.new }
23
- it { should be_false }
29
+ it { should be_falsy }
24
30
  end
25
31
  end
26
32
  end
@@ -14,7 +14,7 @@ describe Splicer::DnsMadeEasy::Provider do
14
14
  provider.stub(:find_domain).and_return(domain)
15
15
  provider.stub(:create_domain).and_raise(Splicer::Errors::RequestError)
16
16
  end
17
- it { should be_false }
17
+ it { should be_falsy }
18
18
  end
19
19
 
20
20
  context 'when the domain exists' do
@@ -23,7 +23,7 @@ describe Splicer::DnsMadeEasy::Provider do
23
23
  provider.stub(:create_domain).and_return(true)
24
24
  provider.stub(:create_record).and_return(true)
25
25
  end
26
- it { should be_true }
26
+ it { should be_truthy }
27
27
  end
28
28
  end
29
29
 
@@ -53,4 +53,12 @@ describe Splicer::DnsMadeEasy::Provider do
53
53
  let(:zone) { Splicer::Zone.new('rspectesting.com') }
54
54
  subject { provider.create_record_in_zone(record, zone) }
55
55
  end
56
+
57
+
58
+ describe '#get_records_for' do
59
+ let(:record) { Splicer::Records::ARecord.new(nil, '127.0.0.1') }
60
+ let(:zone) { Splicer::Zone.new('rspectesting.com') }
61
+ let(:records) { provider.create_record_in_zone(record, zone) }
62
+ subject { provider.get_records_for(zone) }
63
+ end
56
64
  end
@@ -11,23 +11,38 @@ describe Splicer::DnsMadeEasy::Record do
11
11
  }
12
12
  end
13
13
  subject { Splicer::DnsMadeEasy::Record.new(params) }
14
- its(:id) { should eq(params['id']) }
15
- its(:type) { should eq(params['type']) }
16
- its(:value) { should eq(params['value']) }
17
- its(:ttl) { should eq(params['ttl']) }
18
- its(:data) { should eq(params) }
14
+
15
+ it "should find :id to be equal to passed params['id']" do
16
+ expect(subject.id).to eq(params['id'])
17
+ end
18
+
19
+ it "should find :type to be equal to passed params['type']" do
20
+ expect(subject.type).to eq(params['type'])
21
+ end
22
+
23
+ it "should find :value to be equal to passed params['value']" do
24
+ expect(subject.value).to eq(params['value'])
25
+ end
26
+
27
+ it "should find :ttl to be equal to passed params['ttl']" do
28
+ expect(subject.ttl).to eq(params['ttl'])
29
+ end
30
+
31
+ it "should find :data to be equal to passed params" do
32
+ expect(subject.data).to eq(params)
33
+ end
19
34
  end
20
35
 
21
36
  describe '#persisted?' do
22
37
  subject { record.persisted? }
23
38
  context 'when the record is persisted' do
24
39
  let(:record) { Splicer::DnsMadeEasy::Record.new({'id' => 1}) }
25
- it { should be_true }
40
+ it { should be_truthy }
26
41
  end
27
42
 
28
43
  context 'when the record is not persisted' do
29
44
  let(:record) { Splicer::DnsMadeEasy::Record.new }
30
- it { should be_false }
45
+ it { should be_falsy }
31
46
  end
32
47
  end
33
48
  end
@@ -6,11 +6,11 @@ require 'splicer/dns_made_easy/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "splicer-dns_made_easy"
8
8
  spec.version = Splicer::DnsMadeEasy::VERSION
9
- spec.authors = ["Matthew Johnston"]
10
- spec.email = ["warmwaffles@gmail.com"]
11
- spec.description = %q{The splicer adapter for interacting DnsMadeEasy}
12
- spec.summary = %q{The splicer adapter for interacting DnsMadeEasy}
13
- spec.homepage = "https://github.com/zippykid/dns_made_easy"
9
+ spec.authors = ["Matthew Johnston", "Joshua Stowers"]
10
+ spec.email = ["warmwaffles@gmail.com", "joshua@pressable.com"]
11
+ spec.description = %q{The Splicer adapter for interacting DnsMadeEasy}
12
+ spec.summary = %q{Use this gem together with Splicer if you are using multiple DNS providers, and want a unified interface to manage each of them simultaneously}
13
+ spec.homepage = "https://github.com/pressable/splicer-dns_made_easy"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency('splicer', '~> 2.1')
22
- spec.add_dependency('rest-client')
21
+ spec.add_dependency('splicer', '~> 2.2', '>= 2.2.0')
22
+ spec.add_dependency('rest-client', '~> 1.8', '>= 1.0.0')
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.3"
25
- spec.add_development_dependency "rake"
26
- spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency 'bundler', '~> 1.3', '>= 1.3.0'
25
+ spec.add_development_dependency 'rake', '~> 10.4', '>= 10.4.0'
26
+ spec.add_development_dependency 'rspec', '~> 3.4.0', '>= 3.4.0'
27
27
  end
metadata CHANGED
@@ -1,96 +1,128 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splicer-dns_made_easy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Johnston
8
+ - Joshua Stowers
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2015-08-20 00:00:00.000000000 Z
12
+ date: 2015-12-02 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: splicer
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
- - - ~>
18
+ - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: '2.1'
20
+ version: '2.2'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.2.0
20
24
  type: :runtime
21
25
  prerelease: false
22
26
  version_requirements: !ruby/object:Gem::Requirement
23
27
  requirements:
24
- - - ~>
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '2.2'
31
+ - - ">="
25
32
  - !ruby/object:Gem::Version
26
- version: '2.1'
33
+ version: 2.2.0
27
34
  - !ruby/object:Gem::Dependency
28
35
  name: rest-client
29
36
  requirement: !ruby/object:Gem::Requirement
30
37
  requirements:
31
- - - ! '>='
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ - - ">="
32
42
  - !ruby/object:Gem::Version
33
- version: '0'
43
+ version: 1.0.0
34
44
  type: :runtime
35
45
  prerelease: false
36
46
  version_requirements: !ruby/object:Gem::Requirement
37
47
  requirements:
38
- - - ! '>='
48
+ - - "~>"
39
49
  - !ruby/object:Gem::Version
40
- version: '0'
50
+ version: '1.8'
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.0
41
54
  - !ruby/object:Gem::Dependency
42
55
  name: bundler
43
56
  requirement: !ruby/object:Gem::Requirement
44
57
  requirements:
45
- - - ~>
58
+ - - "~>"
46
59
  - !ruby/object:Gem::Version
47
60
  version: '1.3'
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.3.0
48
64
  type: :development
49
65
  prerelease: false
50
66
  version_requirements: !ruby/object:Gem::Requirement
51
67
  requirements:
52
- - - ~>
68
+ - - "~>"
53
69
  - !ruby/object:Gem::Version
54
70
  version: '1.3'
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 1.3.0
55
74
  - !ruby/object:Gem::Dependency
56
75
  name: rake
57
76
  requirement: !ruby/object:Gem::Requirement
58
77
  requirements:
59
- - - ! '>='
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '10.4'
81
+ - - ">="
60
82
  - !ruby/object:Gem::Version
61
- version: '0'
83
+ version: 10.4.0
62
84
  type: :development
63
85
  prerelease: false
64
86
  version_requirements: !ruby/object:Gem::Requirement
65
87
  requirements:
66
- - - ! '>='
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '10.4'
91
+ - - ">="
67
92
  - !ruby/object:Gem::Version
68
- version: '0'
93
+ version: 10.4.0
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rspec
71
96
  requirement: !ruby/object:Gem::Requirement
72
97
  requirements:
73
- - - ! '>='
98
+ - - "~>"
74
99
  - !ruby/object:Gem::Version
75
- version: '0'
100
+ version: 3.4.0
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 3.4.0
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
- - - ! '>='
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 3.4.0
111
+ - - ">="
81
112
  - !ruby/object:Gem::Version
82
- version: '0'
83
- description: The splicer adapter for interacting DnsMadeEasy
113
+ version: 3.4.0
114
+ description: The Splicer adapter for interacting DnsMadeEasy
84
115
  email:
85
116
  - warmwaffles@gmail.com
117
+ - joshua@pressable.com
86
118
  executables: []
87
119
  extensions: []
88
120
  extra_rdoc_files: []
89
121
  files:
90
- - .gitignore
91
- - .rspec
92
- - .ruby-gemset
93
- - .ruby-version
122
+ - ".gitignore"
123
+ - ".rspec"
124
+ - ".ruby-gemset"
125
+ - ".ruby-version"
94
126
  - Gemfile
95
127
  - LICENSE.txt
96
128
  - README.md
@@ -110,7 +142,7 @@ files:
110
142
  - spec/splicer/dns_made_easy/provider_spec.rb
111
143
  - spec/splicer/dns_made_easy/record_spec.rb
112
144
  - splicer-dns_made_easy.gemspec
113
- homepage: https://github.com/zippykid/dns_made_easy
145
+ homepage: https://github.com/pressable/splicer-dns_made_easy
114
146
  licenses:
115
147
  - MIT
116
148
  metadata: {}
@@ -120,20 +152,21 @@ require_paths:
120
152
  - lib
121
153
  required_ruby_version: !ruby/object:Gem::Requirement
122
154
  requirements:
123
- - - ! '>='
155
+ - - ">="
124
156
  - !ruby/object:Gem::Version
125
157
  version: '0'
126
158
  required_rubygems_version: !ruby/object:Gem::Requirement
127
159
  requirements:
128
- - - ! '>='
160
+ - - ">="
129
161
  - !ruby/object:Gem::Version
130
162
  version: '0'
131
163
  requirements: []
132
164
  rubyforge_project:
133
- rubygems_version: 2.4.5
165
+ rubygems_version: 2.2.3
134
166
  signing_key:
135
167
  specification_version: 4
136
- summary: The splicer adapter for interacting DnsMadeEasy
168
+ summary: Use this gem together with Splicer if you are using multiple DNS providers,
169
+ and want a unified interface to manage each of them simultaneously
137
170
  test_files:
138
171
  - spec/spec_helper.rb
139
172
  - spec/splicer/dns_made_easy/client_spec.rb