digitalocean 0.0.2 → 0.0.3
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 +7 -0
- data/.gitignore +2 -1
- data/README.md +19 -1
- data/digitalocean.gemspec +2 -2
- data/lib/digitalocean.rb +3 -0
- data/lib/digitalocean/domain.rb +34 -0
- data/lib/digitalocean/droplet.rb +5 -0
- data/lib/digitalocean/image.rb +12 -0
- data/lib/digitalocean/record.rb +62 -0
- data/lib/digitalocean/region.rb +3 -0
- data/lib/digitalocean/size.rb +3 -0
- data/lib/digitalocean/ssh_key.rb +1 -1
- data/lib/digitalocean/version.rb +1 -1
- data/spec/digitalocean/domain_spec.rb +69 -0
- data/spec/digitalocean/image_spec.rb +15 -0
- data/spec/digitalocean/record_spec.rb +85 -0
- metadata +30 -43
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0bcfea9e0a5aba026b03372ef1667fe125912831
|
4
|
+
data.tar.gz: e9fd93b107102e8e1c66716271796f41dc76472b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f298f4774324d7e70b4c4015ee023e7184cc3167d2f93e52d2c4870346e41c2d88b448387625a4aebaff30c184784941a4a47b6ea6168c8d70f73446305b128f
|
7
|
+
data.tar.gz: 4c1ddb9a6b0e0e43677e7143f8df7a2efc4e5139d554734332558f0fe2180ca6a64ebcaa0809663179da8286e959918c2e863fb6a2ebb042062dd42e504733e4
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -33,7 +33,7 @@ Then in your application initialize the gem:
|
|
33
33
|
|
34
34
|
### Create Droplet
|
35
35
|
|
36
|
-
$ Digitalocean::
|
36
|
+
$ Digitalocean::Droplet.create({:name => droplet_name, :size_id => size_id, :image_id => image_id, :region_id => region_id)
|
37
37
|
|
38
38
|
## Available Commands
|
39
39
|
|
@@ -47,13 +47,31 @@ Then in your application initialize the gem:
|
|
47
47
|
$ Digitalocean::Droplet.power_on(id)
|
48
48
|
$ Digitalocean::Droplet.snapshot(id)
|
49
49
|
$ Digitalocean::Droplet.destroy(id)
|
50
|
+
|
50
51
|
$ Digitalocean::Image.all
|
52
|
+
$ Digitalocean::Image.find(id)
|
53
|
+
$ Digitalocean::Image.destroy(id)
|
54
|
+
$ Digitalocean::Image.transfer(id, region_id)
|
55
|
+
|
51
56
|
$ Digitalocean::Region.all
|
57
|
+
|
52
58
|
$ Digitalocean::Size.all
|
59
|
+
|
53
60
|
$ Digitalocean::SshKey.all
|
54
61
|
$ Digitalocean::SshKey.retrieve(id)
|
55
62
|
$ Digitalocean::SshKey.create({})
|
56
63
|
|
64
|
+
$ Digitalocean::Domain.all
|
65
|
+
$ Digitalocean::Domain.find(id)
|
66
|
+
$ Digitalocean::Domain.create(domain_name, ip_address)
|
67
|
+
$ Digitalocean::Domain.destroy(id)
|
68
|
+
|
69
|
+
$ Digitalocean::Record.all(domain_id)
|
70
|
+
$ Digitalocean::Record.find(domain_id, record_id)
|
71
|
+
$ Digitalocean::Record.create(domain_id, record_type, data, [name, priority, port, weight])
|
72
|
+
$ Digitalocean::Record.edit(domain_id, record_id, {})
|
73
|
+
$ Digitalocean::Record.destroy(domain_id, record_id)
|
74
|
+
|
57
75
|
## Contributing
|
58
76
|
|
59
77
|
1. Fork it
|
data/digitalocean.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'digitalocean/version'
|
|
6
6
|
Gem::Specification.new do |gem|
|
7
7
|
gem.name = "digitalocean"
|
8
8
|
gem.version = Digitalocean::VERSION
|
9
|
-
gem.authors = ["scottmotte"]
|
10
|
-
gem.email = ["scott@scottmotte.com"]
|
9
|
+
gem.authors = ["scottmotte", "sergiocampama"]
|
10
|
+
gem.email = ["scott@scottmotte.com", "sergiocampama@gmail.com"]
|
11
11
|
gem.description = %q{Ruby bindings for the Digital Ocean API.}
|
12
12
|
gem.summary = %q{Ruby bindings for the Digital Ocean API.}
|
13
13
|
gem.homepage = "http://github.com/scottmotte/digitalocean"
|
data/lib/digitalocean.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
module Digitalocean
|
2
|
+
class Domain
|
3
|
+
#
|
4
|
+
# Api calls
|
5
|
+
#
|
6
|
+
def self.all
|
7
|
+
response = Digitalocean.request.get "domains"
|
8
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.find(domain_id)
|
12
|
+
response = Digitalocean.request.get "domains/#{domain_id}"
|
13
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
14
|
+
end
|
15
|
+
|
16
|
+
# attrs = {
|
17
|
+
# :name => domain_name,
|
18
|
+
# :ip_address => ip_address
|
19
|
+
# }
|
20
|
+
def self.create(domain_name, ip_address)
|
21
|
+
attrs = {
|
22
|
+
name: domain_name,
|
23
|
+
ip_address: ip_address
|
24
|
+
}
|
25
|
+
response = Digitalocean.request.get "domains/new", attrs
|
26
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.destroy(domain_id)
|
30
|
+
response = Digitalocean.request.get "domains/#{domain_id}/destroy"
|
31
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/digitalocean/droplet.rb
CHANGED
@@ -13,6 +13,11 @@ module Digitalocean
|
|
13
13
|
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
14
14
|
end
|
15
15
|
|
16
|
+
def self.rename(droplet_id, name)
|
17
|
+
response = Digitalocean.request.get "droplets/#{droplet_id}/rename", :name=>name
|
18
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
19
|
+
end
|
20
|
+
|
16
21
|
def self.reboot(droplet_id=nil)
|
17
22
|
response = Digitalocean.request.get "droplets/#{droplet_id}/reboot"
|
18
23
|
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
data/lib/digitalocean/image.rb
CHANGED
@@ -7,5 +7,17 @@ module Digitalocean
|
|
7
7
|
response = Digitalocean.request.get "images", attrs
|
8
8
|
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
9
9
|
end
|
10
|
+
def self.find(id)
|
11
|
+
response = Digitalocean.request.get "images/#{id}"
|
12
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true).image
|
13
|
+
end
|
14
|
+
def self.destroy(id)
|
15
|
+
response = Digitalocean.request.get "images/#{id}/destroy"
|
16
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true).image
|
17
|
+
end
|
18
|
+
def self.transfer(id, region_id)
|
19
|
+
response = Digitalocean.request.get "images/#{id}/transfer", { region_id: region_id }
|
20
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true).image
|
21
|
+
end
|
10
22
|
end
|
11
23
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Digitalocean
|
2
|
+
class Record
|
3
|
+
#
|
4
|
+
# Api calls
|
5
|
+
#
|
6
|
+
def self.all(domain_id)
|
7
|
+
response = Digitalocean.request.get "domains/#{domain_id}/records"
|
8
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.find(domain_id, record_id)
|
12
|
+
response = Digitalocean.request.get "domains/#{domain_id}/records/#{record_id}"
|
13
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
14
|
+
end
|
15
|
+
|
16
|
+
# attrs = {
|
17
|
+
# :domain_id => domain_id || domain_name,
|
18
|
+
# :record_type => 'A' || 'CNAME' || 'NS' || 'TXT' || 'MX' || 'SRV',
|
19
|
+
# :data => '@' || '123.123.123.123' || ...,
|
20
|
+
# :name => optional, required for A, CNAME, TXT, and SRV records,
|
21
|
+
# :priority => optional, required for SRV and MX,
|
22
|
+
# :port => optional, required for SRV,
|
23
|
+
# :weight => optional, required for SRV
|
24
|
+
# }
|
25
|
+
def self.create(domain_id, record_type, data, name = nil, priority = nil, port = nil, weight = nil)
|
26
|
+
attrs = {
|
27
|
+
domain_id: domain_id,
|
28
|
+
record_type: record_type,
|
29
|
+
data: data,
|
30
|
+
name: name,
|
31
|
+
priority: priority,
|
32
|
+
port: port,
|
33
|
+
weight: weight,
|
34
|
+
}
|
35
|
+
response = Digitalocean.request.get "domains/#{domain_id}/records/new", attrs
|
36
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
37
|
+
end
|
38
|
+
|
39
|
+
# attrs = {
|
40
|
+
# :domain_id => domain_id || domain_name,
|
41
|
+
# :record_type => 'A' || 'CNAME' || 'NS' || 'TXT' || 'MX' || 'SRV',
|
42
|
+
# :data => '@' || '123.123.123.123' || ...,
|
43
|
+
# :name => optional, required for A, CNAME, TXT, and SRV records,
|
44
|
+
# :priority => optional, required for SRV and MX,
|
45
|
+
# :port => optional, required for SRV,
|
46
|
+
# :weight => optional, required for SRV
|
47
|
+
# }
|
48
|
+
def self.edit(domain_id, record_id, attrs)
|
49
|
+
attrs.merge({
|
50
|
+
domain_id: domain_id,
|
51
|
+
record_id: record_id
|
52
|
+
})
|
53
|
+
response = Digitalocean.request.get "domains/#{domain_id}/records/#{record_id}/edit", attrs
|
54
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.destroy(domain_id, record_id)
|
58
|
+
response = Digitalocean.request.get "domains/#{domain_id}/records/#{record_id}/destroy"
|
59
|
+
RecursiveOpenStruct.new(response.body, :recurse_over_arrays => true)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
data/lib/digitalocean/region.rb
CHANGED
data/lib/digitalocean/size.rb
CHANGED
data/lib/digitalocean/ssh_key.rb
CHANGED
data/lib/digitalocean/version.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Digitalocean::Domain do
|
4
|
+
let(:ok) { "OK" }
|
5
|
+
let(:subject) { Digitalocean::Domain }
|
6
|
+
|
7
|
+
context "correct api key" do
|
8
|
+
before do
|
9
|
+
set_client_id_and_api_key!
|
10
|
+
end
|
11
|
+
|
12
|
+
describe ".all" do
|
13
|
+
before do
|
14
|
+
@response = subject.all
|
15
|
+
end
|
16
|
+
|
17
|
+
context "default" do
|
18
|
+
it do
|
19
|
+
@response.status.should eq ok
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".find" do
|
24
|
+
before do
|
25
|
+
domain_id = @response.domains.first.id
|
26
|
+
@response2 = subject.find(domain_id)
|
27
|
+
end
|
28
|
+
|
29
|
+
context "default" do
|
30
|
+
it do
|
31
|
+
@response2.status.should eq ok
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe ".create" do
|
37
|
+
let(:domain_name) { ["digitalocean_spec_", SecureRandom.hex(15), ".com"].join }
|
38
|
+
|
39
|
+
before do
|
40
|
+
domain = @response.domains.first
|
41
|
+
@response_create = subject.create(domain_name, domain.ip_address)
|
42
|
+
end
|
43
|
+
|
44
|
+
context "default" do
|
45
|
+
it do
|
46
|
+
@response_create.status.should eq ok
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe ".destroy" do
|
52
|
+
let(:domain_name) { ["digitalocean_spec_", SecureRandom.hex(15), ".com"].join }
|
53
|
+
|
54
|
+
before do
|
55
|
+
droplet = @response.droplets.first
|
56
|
+
@response_create = subject.create(domain_name, droplet.ip_address)
|
57
|
+
@response_destroy = subject.destroy(@response_create.id)
|
58
|
+
end
|
59
|
+
|
60
|
+
context "default" do
|
61
|
+
it do
|
62
|
+
@response_destroy.status.should eq ok
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -20,5 +20,20 @@ describe Digitalocean::Image do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
+
|
24
|
+
describe ".find" do
|
25
|
+
before do
|
26
|
+
image_id = @response.images.first.id
|
27
|
+
@response2 = subject.retrieve(image_id)
|
28
|
+
end
|
29
|
+
|
30
|
+
context "default" do
|
31
|
+
it do
|
32
|
+
@response.status.should eq ok
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
23
38
|
end
|
24
39
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Digitalocean::Record do
|
4
|
+
let(:ok) { "OK" }
|
5
|
+
let(:subject) { Digitalocean::Record }
|
6
|
+
|
7
|
+
context "correct api key" do
|
8
|
+
before do
|
9
|
+
set_client_id_and_api_key!
|
10
|
+
end
|
11
|
+
|
12
|
+
describe ".all" do
|
13
|
+
before do
|
14
|
+
domain_id = @response.domains.first.id
|
15
|
+
@response = subject.all(domain_id)
|
16
|
+
end
|
17
|
+
|
18
|
+
context "default" do
|
19
|
+
it do
|
20
|
+
@response.status.should eq ok
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe ".find" do
|
25
|
+
before do
|
26
|
+
domain_id = @response.domains.first.id
|
27
|
+
record_id = subject.all(domain_id).first.id
|
28
|
+
@response2 = subject.find(domain_id, record_id)
|
29
|
+
end
|
30
|
+
|
31
|
+
context "default" do
|
32
|
+
it do
|
33
|
+
@response2.status.should eq ok
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe ".create" do
|
39
|
+
let(:domain_name) { ["digitalocean_spec_", SecureRandom.hex(15), ".com"].join }
|
40
|
+
|
41
|
+
before do
|
42
|
+
domain = @response.domains.first
|
43
|
+
@response_create = subject.create(domain.id, 'CNAME', 'www', '@')
|
44
|
+
end
|
45
|
+
|
46
|
+
context "default" do
|
47
|
+
it do
|
48
|
+
@response_create.status.should eq ok
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe ".edit" do
|
54
|
+
|
55
|
+
before do
|
56
|
+
domain = @response.domains.first
|
57
|
+
record = subject.all(domain.id).first
|
58
|
+
@response_create = subject.edit(domain.id, record.id, { data: '@' })
|
59
|
+
end
|
60
|
+
|
61
|
+
context "default" do
|
62
|
+
it do
|
63
|
+
@response_create.status.should eq ok
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe ".destroy" do
|
69
|
+
|
70
|
+
before do
|
71
|
+
domain = @response.domains.first
|
72
|
+
record = subject.all(domain.id).first@response_create = subject.create(domain_name, droplet.ip_address)
|
73
|
+
@response_destroy = subject.destroy(domain.id, record.id)
|
74
|
+
end
|
75
|
+
|
76
|
+
context "default" do
|
77
|
+
it do
|
78
|
+
@response_destroy.status.should eq ok
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
metadata
CHANGED
@@ -1,131 +1,118 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: digitalocean
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- scottmotte
|
8
|
+
- sergiocampama
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
|
-
- -
|
18
|
+
- - '>='
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: '0'
|
22
21
|
type: :runtime
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
|
-
- -
|
25
|
+
- - '>='
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: '0'
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
29
|
name: faraday_middleware
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
|
-
- -
|
32
|
+
- - '>='
|
36
33
|
- !ruby/object:Gem::Version
|
37
34
|
version: '0'
|
38
35
|
type: :runtime
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
|
-
- -
|
39
|
+
- - '>='
|
44
40
|
- !ruby/object:Gem::Version
|
45
41
|
version: '0'
|
46
42
|
- !ruby/object:Gem::Dependency
|
47
43
|
name: recursive-open-struct
|
48
44
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
45
|
requirements:
|
51
|
-
- -
|
46
|
+
- - '>='
|
52
47
|
- !ruby/object:Gem::Version
|
53
48
|
version: '0'
|
54
49
|
type: :runtime
|
55
50
|
prerelease: false
|
56
51
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
52
|
requirements:
|
59
|
-
- -
|
53
|
+
- - '>='
|
60
54
|
- !ruby/object:Gem::Version
|
61
55
|
version: '0'
|
62
56
|
- !ruby/object:Gem::Dependency
|
63
57
|
name: foreman
|
64
58
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
59
|
requirements:
|
67
|
-
- -
|
60
|
+
- - '>='
|
68
61
|
- !ruby/object:Gem::Version
|
69
62
|
version: '0'
|
70
63
|
type: :development
|
71
64
|
prerelease: false
|
72
65
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
66
|
requirements:
|
75
|
-
- -
|
67
|
+
- - '>='
|
76
68
|
- !ruby/object:Gem::Version
|
77
69
|
version: '0'
|
78
70
|
- !ruby/object:Gem::Dependency
|
79
71
|
name: pry
|
80
72
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
73
|
requirements:
|
83
|
-
- -
|
74
|
+
- - '>='
|
84
75
|
- !ruby/object:Gem::Version
|
85
76
|
version: '0'
|
86
77
|
type: :development
|
87
78
|
prerelease: false
|
88
79
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
80
|
requirements:
|
91
|
-
- -
|
81
|
+
- - '>='
|
92
82
|
- !ruby/object:Gem::Version
|
93
83
|
version: '0'
|
94
84
|
- !ruby/object:Gem::Dependency
|
95
85
|
name: rake
|
96
86
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
87
|
requirements:
|
99
|
-
- -
|
88
|
+
- - '>='
|
100
89
|
- !ruby/object:Gem::Version
|
101
90
|
version: '0'
|
102
91
|
type: :development
|
103
92
|
prerelease: false
|
104
93
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
94
|
requirements:
|
107
|
-
- -
|
95
|
+
- - '>='
|
108
96
|
- !ruby/object:Gem::Version
|
109
97
|
version: '0'
|
110
98
|
- !ruby/object:Gem::Dependency
|
111
99
|
name: rspec
|
112
100
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
101
|
requirements:
|
115
|
-
- -
|
102
|
+
- - '>='
|
116
103
|
- !ruby/object:Gem::Version
|
117
104
|
version: '0'
|
118
105
|
type: :development
|
119
106
|
prerelease: false
|
120
107
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
108
|
requirements:
|
123
|
-
- -
|
109
|
+
- - '>='
|
124
110
|
- !ruby/object:Gem::Version
|
125
111
|
version: '0'
|
126
112
|
description: Ruby bindings for the Digital Ocean API.
|
127
113
|
email:
|
128
114
|
- scott@scottmotte.com
|
115
|
+
- sergiocampama@gmail.com
|
129
116
|
executables: []
|
130
117
|
extensions: []
|
131
118
|
extra_rdoc_files: []
|
@@ -139,14 +126,18 @@ files:
|
|
139
126
|
- Rakefile
|
140
127
|
- digitalocean.gemspec
|
141
128
|
- lib/digitalocean.rb
|
129
|
+
- lib/digitalocean/domain.rb
|
142
130
|
- lib/digitalocean/droplet.rb
|
143
131
|
- lib/digitalocean/image.rb
|
132
|
+
- lib/digitalocean/record.rb
|
144
133
|
- lib/digitalocean/region.rb
|
145
134
|
- lib/digitalocean/size.rb
|
146
135
|
- lib/digitalocean/ssh_key.rb
|
147
136
|
- lib/digitalocean/version.rb
|
137
|
+
- spec/digitalocean/domain_spec.rb
|
148
138
|
- spec/digitalocean/droplet_spec.rb
|
149
139
|
- spec/digitalocean/image_spec.rb
|
140
|
+
- spec/digitalocean/record_spec.rb
|
150
141
|
- spec/digitalocean/region_spec.rb
|
151
142
|
- spec/digitalocean/size_spec.rb
|
152
143
|
- spec/digitalocean/ssh_key_spec.rb
|
@@ -154,39 +145,35 @@ files:
|
|
154
145
|
- spec/spec_helper.rb
|
155
146
|
homepage: http://github.com/scottmotte/digitalocean
|
156
147
|
licenses: []
|
148
|
+
metadata: {}
|
157
149
|
post_install_message:
|
158
150
|
rdoc_options: []
|
159
151
|
require_paths:
|
160
152
|
- lib
|
161
153
|
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
-
none: false
|
163
154
|
requirements:
|
164
|
-
- -
|
155
|
+
- - '>='
|
165
156
|
- !ruby/object:Gem::Version
|
166
157
|
version: '0'
|
167
|
-
segments:
|
168
|
-
- 0
|
169
|
-
hash: -3599500042094180118
|
170
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
159
|
requirements:
|
173
|
-
- -
|
160
|
+
- - '>='
|
174
161
|
- !ruby/object:Gem::Version
|
175
162
|
version: '0'
|
176
|
-
segments:
|
177
|
-
- 0
|
178
|
-
hash: -3599500042094180118
|
179
163
|
requirements: []
|
180
164
|
rubyforge_project:
|
181
|
-
rubygems_version:
|
165
|
+
rubygems_version: 2.0.3
|
182
166
|
signing_key:
|
183
|
-
specification_version:
|
167
|
+
specification_version: 4
|
184
168
|
summary: Ruby bindings for the Digital Ocean API.
|
185
169
|
test_files:
|
170
|
+
- spec/digitalocean/domain_spec.rb
|
186
171
|
- spec/digitalocean/droplet_spec.rb
|
187
172
|
- spec/digitalocean/image_spec.rb
|
173
|
+
- spec/digitalocean/record_spec.rb
|
188
174
|
- spec/digitalocean/region_spec.rb
|
189
175
|
- spec/digitalocean/size_spec.rb
|
190
176
|
- spec/digitalocean/ssh_key_spec.rb
|
191
177
|
- spec/digitalocean_spec.rb
|
192
178
|
- spec/spec_helper.rb
|
179
|
+
has_rdoc:
|