cfoundry 0.4.14 → 0.4.15

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.
@@ -8,6 +8,8 @@ module CFoundry
8
8
  class BaseClient # :nodoc:
9
9
  LOG_LENGTH = 10
10
10
 
11
+ attr_reader :target
12
+
11
13
  attr_accessor :trace, :backtrace, :log
12
14
 
13
15
  def initialize(target, token = nil)
@@ -141,6 +143,8 @@ module CFoundry
141
143
  handle_response(response, accept)
142
144
  end
143
145
  end
146
+ rescue ::Timeout::Error => e
147
+ raise Timeout.new(method, uri, e)
144
148
  rescue SocketError, Errno::ECONNREFUSED => e
145
149
  raise TargetRefused, e.message
146
150
  end
@@ -30,6 +30,20 @@ module CFoundry
30
30
  end
31
31
  end
32
32
 
33
+ class Timeout < Timeout::Error
34
+ attr_reader :method, :uri, :parent
35
+
36
+ def initialize(method, uri, parent = nil)
37
+ @method = method
38
+ @uri = uri
39
+ @parent = parent
40
+ super(to_s)
41
+ end
42
+
43
+ def to_s
44
+ "#{method::METHOD} #{uri} timed out"
45
+ end
46
+ end
33
47
 
34
48
  # Exception representing errors returned by the API.
35
49
  class APIError < RuntimeError
@@ -1,4 +1,4 @@
1
1
  module CFoundry # :nodoc:
2
2
  # CFoundry library version number.
3
- VERSION = "0.4.14".freeze
3
+ VERSION = "0.4.15".freeze
4
4
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe CFoundry::BaseClient do
4
+ let(:base) { CFoundry::BaseClient.new("https://api.cloudfoundry.com") }
5
+
6
+ describe '#request_uri' do
7
+ subject { base.request_uri URI.parse(base.target + "/foo"), Net::HTTP::Get }
8
+
9
+ context 'when a timeout exception occurs' do
10
+ before { stub_request(:get, 'https://api.cloudfoundry.com/foo').to_raise(::Timeout::Error) }
11
+
12
+ it 'raises the correct error' do
13
+ expect { subject }.to raise_error CFoundry::Timeout, "GET https://api.cloudfoundry.com/foo timed out"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Errors' do
4
+ describe CFoundry::Timeout do
5
+ let(:parent) { Timeout::Error.new }
6
+
7
+ subject { CFoundry::Timeout.new(Net::HTTP::Post, '/blah', parent) }
8
+
9
+ its(:to_s) { should eq "POST /blah timed out" }
10
+ its(:method) { should eq Net::HTTP::Post }
11
+ its(:uri) { should eq '/blah' }
12
+ its(:parent) { should eq parent }
13
+ end
14
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfoundry
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 17
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 14
10
- version: 0.4.14
9
+ - 15
10
+ version: 0.4.15
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alex Suraci
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-12-15 00:00:00 -08:00
19
- default_executable:
18
+ date: 2012-12-17 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: multipart-post
@@ -150,60 +149,61 @@ extra_rdoc_files: []
150
149
  files:
151
150
  - LICENSE
152
151
  - Rakefile
153
- - lib/cfoundry.rb
152
+ - lib/cfoundry/baseclient.rb
153
+ - lib/cfoundry/chatty_hash.rb
154
154
  - lib/cfoundry/client.rb
155
- - lib/cfoundry/version.rb
156
155
  - lib/cfoundry/errors.rb
157
- - lib/cfoundry/validator.rb
158
- - lib/cfoundry/uaaclient.rb
159
156
  - lib/cfoundry/spec_helper.rb
160
- - lib/cfoundry/v2/service_binding.rb
161
- - lib/cfoundry/v2/service.rb
157
+ - lib/cfoundry/uaaclient.rb
158
+ - lib/cfoundry/upload_helpers.rb
159
+ - lib/cfoundry/v1/app.rb
160
+ - lib/cfoundry/v1/base.rb
161
+ - lib/cfoundry/v1/client.rb
162
+ - lib/cfoundry/v1/framework.rb
163
+ - lib/cfoundry/v1/model.rb
164
+ - lib/cfoundry/v1/model_magic.rb
165
+ - lib/cfoundry/v1/runtime.rb
166
+ - lib/cfoundry/v1/service.rb
167
+ - lib/cfoundry/v1/service_instance.rb
168
+ - lib/cfoundry/v1/user.rb
169
+ - lib/cfoundry/v2/app.rb
170
+ - lib/cfoundry/v2/base.rb
162
171
  - lib/cfoundry/v2/client.rb
163
- - lib/cfoundry/v2/model.rb
164
- - lib/cfoundry/v2/user.rb
172
+ - lib/cfoundry/v2/domain.rb
165
173
  - lib/cfoundry/v2/framework.rb
174
+ - lib/cfoundry/v2/model.rb
166
175
  - lib/cfoundry/v2/model_magic.rb
167
- - lib/cfoundry/v2/service_auth_token.rb
168
- - lib/cfoundry/v2/space.rb
169
- - lib/cfoundry/v2/app.rb
170
- - lib/cfoundry/v2/service_plan.rb
171
- - lib/cfoundry/v2/base.rb
172
176
  - lib/cfoundry/v2/organization.rb
173
177
  - lib/cfoundry/v2/route.rb
174
- - lib/cfoundry/v2/domain.rb
175
178
  - lib/cfoundry/v2/runtime.rb
179
+ - lib/cfoundry/v2/service.rb
180
+ - lib/cfoundry/v2/service_auth_token.rb
181
+ - lib/cfoundry/v2/service_binding.rb
176
182
  - lib/cfoundry/v2/service_instance.rb
177
- - lib/cfoundry/baseclient.rb
178
- - lib/cfoundry/upload_helpers.rb
179
- - lib/cfoundry/v1/service.rb
180
- - lib/cfoundry/v1/client.rb
181
- - lib/cfoundry/v1/model.rb
182
- - lib/cfoundry/v1/user.rb
183
- - lib/cfoundry/v1/framework.rb
184
- - lib/cfoundry/v1/model_magic.rb
185
- - lib/cfoundry/v1/app.rb
186
- - lib/cfoundry/v1/base.rb
187
- - lib/cfoundry/v1/runtime.rb
188
- - lib/cfoundry/v1/service_instance.rb
183
+ - lib/cfoundry/v2/service_plan.rb
184
+ - lib/cfoundry/v2/space.rb
185
+ - lib/cfoundry/v2/user.rb
186
+ - lib/cfoundry/validator.rb
187
+ - lib/cfoundry/version.rb
189
188
  - lib/cfoundry/zip.rb
190
- - lib/cfoundry/chatty_hash.rb
191
- - spec/factories/service_instance_factory.rb
192
- - spec/factories/service_binding_factory.rb
193
- - spec/factories/service_factory.rb
194
- - spec/factories/route_factory.rb
189
+ - lib/cfoundry.rb
190
+ - spec/cfoundry/baseclient_spec.rb
191
+ - spec/cfoundry/errors_spec.rb
192
+ - spec/cfoundry/uaaclient_spec.rb
193
+ - spec/factories/app_factory.rb
194
+ - spec/factories/client_factory.rb
195
+ - spec/factories/domain_factory.rb
195
196
  - spec/factories/factory.rb
196
- - spec/factories/runtime_factory.rb
197
- - spec/factories/space_factory.rb
198
- - spec/factories/organization_factory.rb
199
197
  - spec/factories/framework_factory.rb
200
- - spec/factories/domain_factory.rb
201
- - spec/factories/client_factory.rb
202
- - spec/factories/app_factory.rb
198
+ - spec/factories/organization_factory.rb
199
+ - spec/factories/route_factory.rb
200
+ - spec/factories/runtime_factory.rb
201
+ - spec/factories/service_binding_factory.rb
202
+ - spec/factories/service_factory.rb
203
+ - spec/factories/service_instance_factory.rb
203
204
  - spec/factories/service_plan_factory.rb
205
+ - spec/factories/space_factory.rb
204
206
  - spec/spec_helper.rb
205
- - spec/cfoundry/uaaclient_spec.rb
206
- has_rdoc: true
207
207
  homepage: http://cloudfoundry.com/
208
208
  licenses: []
209
209
 
@@ -233,23 +233,25 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
233
  requirements: []
234
234
 
235
235
  rubyforge_project: cfoundry
236
- rubygems_version: 1.6.2
236
+ rubygems_version: 1.8.24
237
237
  signing_key:
238
238
  specification_version: 3
239
239
  summary: High-level library for working with the Cloud Foundry API.
240
240
  test_files:
241
- - spec/factories/service_instance_factory.rb
242
- - spec/factories/service_binding_factory.rb
243
- - spec/factories/service_factory.rb
244
- - spec/factories/route_factory.rb
241
+ - spec/cfoundry/baseclient_spec.rb
242
+ - spec/cfoundry/errors_spec.rb
243
+ - spec/cfoundry/uaaclient_spec.rb
244
+ - spec/factories/app_factory.rb
245
+ - spec/factories/client_factory.rb
246
+ - spec/factories/domain_factory.rb
245
247
  - spec/factories/factory.rb
246
- - spec/factories/runtime_factory.rb
247
- - spec/factories/space_factory.rb
248
- - spec/factories/organization_factory.rb
249
248
  - spec/factories/framework_factory.rb
250
- - spec/factories/domain_factory.rb
251
- - spec/factories/client_factory.rb
252
- - spec/factories/app_factory.rb
249
+ - spec/factories/organization_factory.rb
250
+ - spec/factories/route_factory.rb
251
+ - spec/factories/runtime_factory.rb
252
+ - spec/factories/service_binding_factory.rb
253
+ - spec/factories/service_factory.rb
254
+ - spec/factories/service_instance_factory.rb
253
255
  - spec/factories/service_plan_factory.rb
256
+ - spec/factories/space_factory.rb
254
257
  - spec/spec_helper.rb
255
- - spec/cfoundry/uaaclient_spec.rb