droplet_kit 2.7.0 → 2.8.0

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
- SHA1:
3
- metadata.gz: cc932d61ca690fb4a81e55d15b6f8c733ffa1599
4
- data.tar.gz: 0451b7c0f8fb34965cb6bb4450b8794f0cd5591c
2
+ SHA256:
3
+ metadata.gz: e0cf3b3acb6383c2bb59033a01b8d3d14e14c4387db6f921ba0d06530d0d5a13
4
+ data.tar.gz: b9c37f5787739cb2f6256ac3d4654bda66c4ca34179152c9243aa327079e7083
5
5
  SHA512:
6
- metadata.gz: 98cbeaaaa47c810447898415d480e3d5a6ba0bb3f0bad57da13192411dd109c0ae569760a92771f8f738bdac758eedd66ee9ce18b21b49cb0c2b7f2409407094
7
- data.tar.gz: 71a7bf51defafd88379603eb7f6525be77ef7b20c00d13bc9b6ea4050545f535f22cae2b3fd58de9df68cdd7a86ad4f45ca3a038fc1ceca04c478b5ab2216ad6
6
+ metadata.gz: 2d69f2d18487aa8f742f3fe7973367dc183976ca0ffdf7853fc4577f572e09ebaa8e880ca4231214517cefb48d98f6a2f4fd914974aa75c47935c7718b6a4c41
7
+ data.tar.gz: 992888c5e18630c67ed28e584e81775e65c4787aacfad5bcce037cc681c6a5ce69c5dc526e282e8d51257750409acc731adc71d8c68001fa7e5799c433f5a3d6
@@ -1,3 +1,8 @@
1
+ ### [2.8.0] - 2018-12-11
2
+ * #144 Adds the ability to set timeout options for Faraday - @tgturner
3
+ * #145 Bump Faraday version to 0.15 - @petems
4
+ * #170 Remove test rb file - @scottcrawford03
5
+
1
6
  ### Version 2.7.0
2
7
  * Added KubernetesCluster resource
3
8
  * Added KubernetesOptions resource
data/README.md CHANGED
@@ -29,6 +29,19 @@ require 'droplet_kit'
29
29
  client = DropletKit::Client.new(access_token: 'YOUR_TOKEN')
30
30
  ```
31
31
 
32
+ ### Timeout
33
+
34
+ You may also set timeout and time to first byte options on the client.
35
+
36
+ ```ruby
37
+ require 'droplet_kit'
38
+ client = DropletKit::Client.new(
39
+ access_token: 'YOUR_TOKEN',
40
+ open_timeout: 60, # time to first byte in seconds
41
+ timeout: 120, # response timeout in seconds
42
+ )
43
+ ```
44
+
32
45
  ### Custom User-Agent
33
46
 
34
47
  If you would like to include a custom User-Agent header beyond what DropletKit
@@ -24,12 +24,11 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "resource_kit", '~> 0.1.5'
25
25
  spec.add_dependency "kartograph", '~> 0.2.3'
26
26
  spec.add_dependency "activesupport", '> 3.0', '< 6'
27
- spec.add_dependency "faraday", '~> 0.9'
27
+ spec.add_dependency "faraday", '~> 0.15'
28
28
 
29
29
  spec.add_development_dependency "bundler", ">= 1.11.0"
30
30
  spec.add_development_dependency "rake"
31
31
  spec.add_development_dependency "rspec", "~> 3.0.0"
32
- spec.add_development_dependency "pry"
33
32
  spec.add_development_dependency "rb-readline"
34
33
 
35
34
  # FakeServe
@@ -2,18 +2,24 @@ require 'faraday'
2
2
 
3
3
  module DropletKit
4
4
  class Client
5
+ DEFAULT_OPEN_TIMEOUT = 60
6
+ DEFAULT_TIMEOUT = 120
5
7
  DIGITALOCEAN_API = 'https://api.digitalocean.com'
6
8
 
7
- attr_reader :access_token, :user_agent
9
+ attr_reader :access_token, :timeout, :open_timeout, :user_agent
8
10
 
9
11
  def initialize(options = {})
10
12
  @access_token = options.with_indifferent_access[:access_token]
11
- @user_agent = options.with_indifferent_access[:user_agent]
13
+ @open_timeout = options.with_indifferent_access[:open_timeout] || DEFAULT_OPEN_TIMEOUT
14
+ @timeout = options.with_indifferent_access[:timeout] || DEFAULT_TIMEOUT
15
+ @user_agent = options.with_indifferent_access[:user_agent]
12
16
  end
13
17
 
14
18
  def connection
15
19
  @faraday ||= Faraday.new connection_options do |req|
16
20
  req.adapter :net_http
21
+ req.options.open_timeout = open_timeout
22
+ req.options.timeout = timeout
17
23
  end
18
24
  end
19
25
 
@@ -1,3 +1,3 @@
1
1
  module DropletKit
2
- VERSION = "2.7.0"
2
+ VERSION = "2.8.0"
3
3
  end
@@ -13,6 +13,36 @@ RSpec.describe DropletKit::Client do
13
13
  client = DropletKit::Client.new('access_token' => 'my-token')
14
14
  expect(client.access_token).to eq('my-token')
15
15
  end
16
+
17
+ it 'has default open_timeout for faraday' do
18
+ client = DropletKit::Client.new('access_token' => 'my-token')
19
+ expect(client.open_timeout).to eq(DropletKit::Client::DEFAULT_OPEN_TIMEOUT)
20
+ end
21
+
22
+ it 'allows open_timeout to be set' do
23
+ open_timeout = 10
24
+ client = DropletKit::Client.new(
25
+ 'access_token' => 'my-token',
26
+ 'open_timeout' => open_timeout
27
+ )
28
+
29
+ expect(client.open_timeout).to eq(open_timeout)
30
+ end
31
+
32
+ it 'has default timeout' do
33
+ client = DropletKit::Client.new('access_token' => 'my-token')
34
+ expect(client.timeout).to eq(DropletKit::Client::DEFAULT_TIMEOUT)
35
+ end
36
+
37
+ it 'allows timeout to be set' do
38
+ timeout = 10
39
+ client = DropletKit::Client.new(
40
+ 'access_token' => 'my-token',
41
+ 'timeout' => timeout
42
+ )
43
+
44
+ expect(client.timeout).to eq(timeout)
45
+ end
16
46
  end
17
47
 
18
48
  describe "#method_missing" do
@@ -58,6 +88,14 @@ RSpec.describe DropletKit::Client do
58
88
  client.connection.use AcmeApp::CustomLogger
59
89
  expect(client.connection.builder.handlers).to include(AcmeApp::CustomLogger)
60
90
  end
91
+
92
+ it 'has open_timeout set' do
93
+ expect(client.connection.options.open_timeout).to eq(DropletKit::Client::DEFAULT_OPEN_TIMEOUT)
94
+ end
95
+
96
+ it 'has timeout set' do
97
+ expect(client.connection.options.timeout).to eq(DropletKit::Client::DEFAULT_TIMEOUT)
98
+ end
61
99
  end
62
100
 
63
101
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droplet_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Ross
@@ -78,14 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.9'
81
+ version: '0.15'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0.9'
88
+ version: '0.15'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: bundler
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -128,20 +128,6 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: 3.0.0
131
- - !ruby/object:Gem::Dependency
132
- name: pry
133
- requirement: !ruby/object:Gem::Requirement
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: '0'
138
- type: :development
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - ">="
143
- - !ruby/object:Gem::Version
144
- version: '0'
145
131
  - !ruby/object:Gem::Dependency
146
132
  name: rb-readline
147
133
  requirement: !ruby/object:Gem::Requirement
@@ -450,7 +436,6 @@ files:
450
436
  - spec/support/shared_examples/common_errors.rb
451
437
  - spec/support/shared_examples/paginated_endpoint.rb
452
438
  - spec/support/shared_examples/unprocessable_entity.rb
453
- - test.rb
454
439
  homepage: https://github.com/digitalocean/droplet_kit
455
440
  licenses:
456
441
  - MIT
@@ -471,7 +456,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
471
456
  version: '0'
472
457
  requirements: []
473
458
  rubyforge_project:
474
- rubygems_version: 2.6.14.3
459
+ rubygems_version: 2.7.6
475
460
  signing_key:
476
461
  specification_version: 4
477
462
  summary: Droplet Kit is the official Ruby library for DigitalOcean's API
data/test.rb DELETED
@@ -1,9 +0,0 @@
1
- require 'pry'
2
- require 'droplet_kit'
3
-
4
- token = '0e833ebb5c6b914eb58586ac14b03166bfd41110904e433e99e926abc6262bd2'
5
- client = DropletKit::Client.new(access_token: token)
6
-
7
- binding.pry
8
- client
9
-