droplet_kit 1.1.1 → 1.1.2

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8d31231e3af2be10b1a55dfe123b5e2e8b72517
4
- data.tar.gz: 26c342ab6ba83c993dab33c0fddc383eea4c5e70
3
+ metadata.gz: 9a7043fefd42f5297c3f91fa3033c30a47ff86fd
4
+ data.tar.gz: 2dfc49f1230133e864b1b9373a6caee0c7b9c5e3
5
5
  SHA512:
6
- metadata.gz: f86c214072f2b056efbd9eac7bf0a0d026a3aba1df7d7bc381fcfdf21a49a9c7938345624071e57ac2e5aa8fe2b70b75edd9123ebbbbaf127a6b526a48575630
7
- data.tar.gz: 9ca7632532e88953369de900f8be54489c02688684694a5ff0035bd26cd740bdcf230342c8b401e277d67ac1607d15520cc9a9ae0dba021f78e153b9019aab57
6
+ metadata.gz: da1218af357c9a2c1ef5cd2650d583cd2899b4895760747438054e8d353de5c1479a186427ef3711c2f541333d189a19d6c5fc7aff193cd0b08393018514f004
7
+ data.tar.gz: f37b970dd2c05bad03039fbaadd98736c70e4c889014f9e01a5ddcdf11d3b5150196ba7a6da908f028b104c7232b8089d4b2d3cf3e2b32f0500a8b9032300364
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### Version 1.1.2
2
+
3
+ * Add `public_ip` and `private_ip` to easily get the IP address on `DropletKit::Droplet` objects returned.
4
+
5
+ ### Version 1.1.1
6
+
7
+ * Use size_slug instead of size object in droplet mappings.
8
+
1
9
  ### Version 1.1.0
2
10
 
3
11
  * Changing kernels is now `client.droplet_actions.change_kernel(kernel: 'name', droplet_id: 123)` instead of `droplet_actions.kernel()`.
@@ -13,6 +13,29 @@ module DropletKit
13
13
  attribute :ipv6
14
14
  attribute :user_data
15
15
  attribute :private_networking
16
+
17
+ def public_ip
18
+ network = network_for(:v4, 'public')
19
+ network && network.ip_address
20
+ end
21
+
22
+ def private_ip
23
+ network = network_for(:v4, 'private')
24
+ network && network.ip_address
25
+ end
26
+
27
+ private
28
+
29
+ def network_for(type, publicity)
30
+ networks = case type
31
+ when :v4 then self.networks.v4
32
+ when :v6 then self.networks.v6
33
+ end
34
+
35
+ networks.find do |network|
36
+ network.type == publicity
37
+ end
38
+ end
16
39
  end
17
40
  end
18
41
 
@@ -1,3 +1,3 @@
1
1
  module DropletKit
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe DropletKit::Droplet do
4
+ let(:droplet_fixture) { api_fixture('droplets/find') }
5
+ let(:droplet) { DropletKit::DropletMapping.extract_single(droplet_fixture, :read) }
6
+
7
+ describe '#public_ip' do
8
+ it 'returns the public IP for ipv4' do
9
+ expect(droplet.public_ip).to eq('127.0.0.19')
10
+ end
11
+
12
+ context 'when the droplet does not have an IP yet' do
13
+ it 'returns nil' do
14
+ droplet.networks.v4.clear
15
+ expect(droplet.public_ip).to be_nil
16
+ end
17
+ end
18
+ end
19
+
20
+ describe '#private_ip' do
21
+ it 'returns the public IP for ipv4' do
22
+ expect(droplet.private_ip).to eq('10.0.0.19')
23
+ end
24
+
25
+ context 'when the droplet does not have private networking enabled' do
26
+ it 'returns nil' do
27
+ droplet.networks.v4.clear
28
+ expect(droplet.private_ip).to be_nil
29
+ end
30
+ end
31
+ end
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droplet_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Ross
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-06 00:00:00.000000000 Z
11
+ date: 2014-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -244,6 +244,7 @@ files:
244
244
  - spec/fixtures/ssh_keys/find.json
245
245
  - spec/fixtures/ssh_keys/update.json
246
246
  - spec/lib/droplet_kit/client_spec.rb
247
+ - spec/lib/droplet_kit/models/droplet_spec.rb
247
248
  - spec/lib/droplet_kit/paginated_resource_spec.rb
248
249
  - spec/lib/droplet_kit/resources/account_resource_spec.rb
249
250
  - spec/lib/droplet_kit/resources/action_resource_spec.rb
@@ -314,6 +315,7 @@ test_files:
314
315
  - spec/fixtures/ssh_keys/find.json
315
316
  - spec/fixtures/ssh_keys/update.json
316
317
  - spec/lib/droplet_kit/client_spec.rb
318
+ - spec/lib/droplet_kit/models/droplet_spec.rb
317
319
  - spec/lib/droplet_kit/paginated_resource_spec.rb
318
320
  - spec/lib/droplet_kit/resources/account_resource_spec.rb
319
321
  - spec/lib/droplet_kit/resources/action_resource_spec.rb