cfoundry 4.0.4.rc2 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,6 +7,8 @@ require "forwardable"
7
7
 
8
8
  module CFoundry
9
9
  class BaseClient # :nodoc:
10
+ include CFoundry::ProxyOptions
11
+
10
12
  extend Forwardable
11
13
 
12
14
  attr_reader :rest_client
@@ -27,7 +29,7 @@ module CFoundry
27
29
  endpoint = info[:authorization_endpoint]
28
30
 
29
31
  if endpoint
30
- uaa = CFoundry::UAAClient.new(endpoint)
32
+ uaa = CFoundry::UAAClient.new(endpoint, "cf", http_proxy: http_proxy, https_proxy: https_proxy)
31
33
  uaa.trace = trace
32
34
  uaa.token = token
33
35
  uaa
@@ -105,7 +107,7 @@ module CFoundry
105
107
  opts[:verify_mode] = OpenSSL::SSL::VERIFY_NONE
106
108
  end
107
109
 
108
- Net::HTTP.start(uri.host, uri.port, opts) do |http|
110
+ Net::HTTP.start(uri.host, uri.port, *proxy_options_for(uri), opts) do |http|
109
111
  http.read_timeout = 5
110
112
 
111
113
  req = Net::HTTP::Get.new(uri.request_uri)
@@ -1,3 +1,5 @@
1
+ require "cfoundry/concerns/proxy_options"
2
+
1
3
  require "cfoundry/baseclient"
2
4
  require "cfoundry/rest_client"
3
5
  require "cfoundry/auth_token"
@@ -0,0 +1,17 @@
1
+ module CFoundry
2
+ module ProxyOptions
3
+ def proxy_options_for(uri)
4
+ ssl = uri.is_a?(URI::HTTPS)
5
+ proxy_to_use = (ssl ? https_proxy : http_proxy)
6
+
7
+ if proxy_to_use.blank?
8
+ []
9
+ else
10
+ proxy_to_use = "proto://#{proxy_to_use}" unless proxy_to_use =~ /:\/\//
11
+ proxy_uri = URI.parse(proxy_to_use)
12
+ proxy_user, proxy_password = proxy_uri.userinfo.split(/:/) if proxy_uri.userinfo
13
+ [proxy_uri.host, proxy_uri.port, proxy_user, proxy_password]
14
+ end
15
+ end
16
+ end
17
+ end
@@ -7,20 +7,10 @@ require "fileutils"
7
7
  module CFoundry
8
8
  class RestClient
9
9
  class HTTPFactory
10
- def self.create(uri, http_proxy, https_proxy)
11
- scheme = uri.scheme
12
- proxy_to_use = (scheme == "http" ? http_proxy : https_proxy)
13
-
14
- if proxy_to_use
15
- proxy_uri = URI.parse(proxy_to_use)
16
- proxy_user, proxy_pass = proxy_uri.userinfo.split(/:/) if proxy_uri.userinfo
17
- http = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_user, proxy_pass).
18
- new(uri.host, uri.port)
19
- else
20
- http = Net::HTTP.new(uri.host, uri.port)
21
- end
10
+ def self.create(uri, proxy_options = [])
11
+ http = Net::HTTP.new(uri.host, uri.port, *proxy_options)
22
12
 
23
- if scheme == "https"
13
+ if uri.is_a?(URI::HTTPS)
24
14
  http.use_ssl = true
25
15
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE
26
16
  end
@@ -30,6 +20,7 @@ module CFoundry
30
20
  end
31
21
 
32
22
  include CFoundry::TraceHelpers
23
+ include CFoundry::ProxyOptions
33
24
 
34
25
  LOG_LENGTH = 10
35
26
 
@@ -148,7 +139,7 @@ module CFoundry
148
139
 
149
140
  add_headers(request, headers)
150
141
 
151
- http = HTTPFactory.create(uri, http_proxy, https_proxy)
142
+ http = HTTPFactory.create(uri, proxy_options_for(uri))
152
143
 
153
144
  # TODO remove this when staging returns streaming responses
154
145
  http.read_timeout = 300
@@ -3,17 +3,19 @@ require "uaa"
3
3
 
4
4
  module CFoundry
5
5
  class UAAClient
6
- attr_accessor :target, :client_id, :token, :trace
6
+ attr_accessor :target, :client_id, :token, :trace, :http_proxy, :https_proxy
7
7
 
8
- def initialize(target, client_id = "cf")
8
+ def initialize(target, client_id = "cf", options = {})
9
9
  @target = target
10
10
  @client_id = client_id
11
- CF::UAA::Misc.symbolize_keys = true
11
+ @http_proxy = options[:http_proxy]
12
+ @https_proxy = options[:https_proxy]
13
+ @uaa_info_client = uaa_info_client_for(target)
12
14
  end
13
15
 
14
16
  def prompts
15
17
  wrap_uaa_errors do
16
- CF::UAA::Misc.server(target)[:prompts]
18
+ @uaa_info_client.server[:prompts]
17
19
  end
18
20
  end
19
21
 
@@ -44,7 +46,7 @@ module CFoundry
44
46
 
45
47
  def password_score(password)
46
48
  wrap_uaa_errors do
47
- response = CF::UAA::Misc.password_strength(uaa_url, password)
49
+ response = uaa_info_client_for(uaa_url).password_strength(password)
48
50
 
49
51
  required_score = response[:requiredScore] || 0
50
52
  case (response[:score] || 0)
@@ -90,8 +92,20 @@ module CFoundry
90
92
 
91
93
  private
92
94
 
95
+ def uaa_info_client_for(url)
96
+ CF::UAA::Info.new(url,
97
+ :symbolize_keys => true,
98
+ :http_proxy => http_proxy,
99
+ :https_proxy => https_proxy
100
+ )
101
+ end
102
+
93
103
  def token_issuer
94
- @token_issuer ||= CF::UAA::TokenIssuer.new(target, client_id, nil, :symbolize_keys => true)
104
+ @token_issuer ||= CF::UAA::TokenIssuer.new(target, client_id, nil,
105
+ :symbolize_keys => true,
106
+ :http_proxy => @http_proxy,
107
+ :https_proxy => @https_proxy
108
+ )
95
109
  @token_issuer.logger.level = @trace ? Logger::Severity::TRACE : 1
96
110
  @token_issuer
97
111
  end
@@ -104,7 +118,7 @@ module CFoundry
104
118
  end
105
119
 
106
120
  def uaa_url
107
- @uaa_url ||= CF::UAA::Misc.discover_uaa(target)
121
+ @uaa_url ||= @uaa_info_client.discover_uaa
108
122
  end
109
123
 
110
124
  def authenticate_with_password_grant(credentials)
@@ -1,4 +1,4 @@
1
1
  module CFoundry # :nodoc:
2
2
  # CFoundry library version number.
3
- VERSION = "4.0.4.rc2".freeze
3
+ VERSION = "4.1.0".freeze
4
4
  end
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CFoundry::BaseClient do
4
+ let(:authorization_endpoint) { "http://uaa.example.com" }
4
5
  subject(:client) { CFoundry::BaseClient.new("http://api.example.com") }
5
6
  describe "#request" do
6
7
  before do
@@ -104,7 +105,7 @@ describe CFoundry::BaseClient do
104
105
 
105
106
  describe "UAAClient" do
106
107
  context "with a valid uaa endpoint" do
107
- let(:info) { { :authorization_endpoint => "http://uaa.example.com" } }
108
+ let(:info) { { :authorization_endpoint => authorization_endpoint } }
108
109
 
109
110
  before do
110
111
  subject.stub(:info) { info }
@@ -134,6 +135,22 @@ describe CFoundry::BaseClient do
134
135
  expect(subject.uaa.target).to eq "foo"
135
136
  end
136
137
  end
138
+
139
+ context "when proxy is set" do
140
+ before do
141
+ subject.http_proxy = 'http-proxy.example.com'
142
+ subject.https_proxy = 'https-proxy.example.com'
143
+ end
144
+
145
+ it "passes the proxy to the uaa client" do
146
+ CFoundry::UAAClient.stub(:new).and_call_original
147
+ subject.uaa
148
+ expect(CFoundry::UAAClient).to have_received(:new).with(anything, anything, hash_including(
149
+ http_proxy: 'http-proxy.example.com',
150
+ https_proxy: 'https-proxy.example.com'
151
+ ))
152
+ end
153
+ end
137
154
  end
138
155
 
139
156
  describe "#token=" do
@@ -219,6 +236,16 @@ describe CFoundry::BaseClient do
219
236
  expect(chunks).to eq(["https result"])
220
237
  end
221
238
 
239
+ it "sets proxy options if available" do
240
+ stub_request(:get, "https://example.com/something")
241
+ subject.https_proxy = "user:password@https-proxy.example.com:1234"
242
+ Net::HTTP.stub(:start).and_call_original
243
+
244
+ subject.stream_url("https://example.com/something")
245
+
246
+ expect(Net::HTTP).to have_received(:start).with(anything, anything, 'https-proxy.example.com', 1234, 'user', 'password', anything)
247
+ end
248
+
222
249
  it "raises NotFound if response is 404" do
223
250
  stub_request(:get, "http://example.com/something").to_return(
224
251
  :status => 404, :body => "result")
@@ -289,11 +289,10 @@ describe CFoundry::RestClient do
289
289
 
290
290
  describe CFoundry::RestClient::HTTPFactory do
291
291
  describe ".create" do
292
- let(:http_proxy) { '' }
293
- let(:https_proxy) { '' }
292
+ let(:proxy_options) { [] }
294
293
  let(:target_uri) { "http://api.example.com" }
295
294
 
296
- subject { CFoundry::RestClient::HTTPFactory.create(URI.parse(target_uri), http_proxy, https_proxy) }
295
+ subject { CFoundry::RestClient::HTTPFactory.create(URI.parse(target_uri), proxy_options) }
297
296
 
298
297
  context "when no proxy URI is set" do
299
298
  it "should return an instance of the plain Net:HTTP class" do
@@ -313,7 +312,7 @@ describe CFoundry::RestClient do
313
312
  end
314
313
 
315
314
  context "when a http proxy URI without user/password is set " do
316
- let(:http_proxy) { "http://exapmle.com:8080" }
315
+ let(:proxy_options) { ["exapmle.com", 8080, nil, nil] }
317
316
 
318
317
  it "should return an instance of the proxy class" do
319
318
  expect(subject.proxy?).to be_true
@@ -323,7 +322,7 @@ describe CFoundry::RestClient do
323
322
  end
324
323
 
325
324
  context "when a http proxy URI with user/password is set " do
326
- let(:http_proxy) { "http://user:pass@exapmle.com:8080" }
325
+ let(:proxy_options) { ["exapmle.com", "8080", "user", "pass"] }
327
326
 
328
327
  it "should return an instance of the proxy class" do
329
328
  expect(subject.proxy?).to be_true
@@ -331,41 +330,6 @@ describe CFoundry::RestClient do
331
330
  expect(subject.proxy_pass).to eql("pass")
332
331
  end
333
332
  end
334
-
335
- context "when a https proxy URI is set and the target is an https URI" do
336
- let(:target_uri) { "https://example.com" }
337
- let(:https_proxy) { "http://exapmle.com:8080" }
338
-
339
- it "should return an instance of the proxy class" do
340
- expect(subject.proxy?).to be_true
341
- end
342
- end
343
-
344
- context "when a https proxy URI is set and the target is an http URI" do
345
- let(:target_uri) { "http://example.com" }
346
- let(:https_proxy) { "http://exapmle.com:8080" }
347
-
348
- it "should return an instance of the plain Net:HTTP class" do
349
- expect(subject.proxy?).to be_nil
350
- end
351
- end
352
-
353
- context "when a http proxy URI is set and the target is an https URI" do
354
- let(:target_uri) { "https://example.com" }
355
- let(:http_proxy) { "http://exapmle.com:8080" }
356
-
357
- it "should return an instance of the plain Net:HTTP class" do
358
- expect(subject.proxy?).to be_nil
359
- end
360
- end
361
-
362
- context "when an invalid proxy URI is set" do
363
- let(:http_proxy) { "invalid URI" }
364
-
365
- it "should raise an error" do
366
- expect { subject }.to raise_error(URI::InvalidURIError)
367
- end
368
- end
369
333
  end
370
334
  end
371
335
 
@@ -25,6 +25,17 @@ EOF
25
25
  end
26
26
  end
27
27
 
28
+ describe '#initialize' do
29
+ it "passes proxy info to the UAA info client" do
30
+ CF::UAA::Info.stub(:new)
31
+ CFoundry::UAAClient.new(target, 'cf', http_proxy: 'http-proxy.example.com', https_proxy: 'https-proxy.example.com')
32
+ expect(CF::UAA::Info).to have_received(:new).with(anything, hash_including(
33
+ http_proxy: 'http-proxy.example.com',
34
+ https_proxy: 'https-proxy.example.com'
35
+ ))
36
+ end
37
+ end
38
+
28
39
  describe '#prompts' do
29
40
  subject { uaa.prompts }
30
41
 
@@ -338,6 +349,19 @@ EOF
338
349
  uaa.trace = false
339
350
  expect(uaa.send(:token_issuer).logger.level).to eq 1
340
351
  end
352
+
353
+ it "passes proxy info to the token issuer" do
354
+ CF::UAA::TokenIssuer.stub(:new).and_call_original
355
+ uaa.http_proxy = 'http-proxy.example.com'
356
+ uaa.https_proxy = 'https-proxy.example.com'
357
+
358
+ uaa.send(:token_issuer)
359
+
360
+ expect(CF::UAA::TokenIssuer).to have_received(:new).with(anything, anything, anything, hash_including(
361
+ http_proxy: 'http-proxy.example.com',
362
+ https_proxy: 'https-proxy.example.com'
363
+ ))
364
+ end
341
365
  end
342
366
 
343
367
  describe "#scim" do
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  SPEC_ROOT = File.dirname(__FILE__).freeze
2
2
 
3
3
  require "rspec"
4
+ require "putsinator"
4
5
  require "cfoundry"
5
6
  require "webmock/rspec"
6
7
  require "ostruct"
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfoundry
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.4.rc2
4
+ version: 4.1.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Cloud Foundry Team
@@ -9,11 +10,12 @@ authors:
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2013-08-01 00:00:00.000000000 Z
13
+ date: 2013-08-07 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: activemodel
16
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
17
19
  requirements:
18
20
  - - ~>
19
21
  - !ruby/object:Gem::Version
@@ -21,6 +23,7 @@ dependencies:
21
23
  type: :runtime
22
24
  prerelease: false
23
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
24
27
  requirements:
25
28
  - - ~>
26
29
  - !ruby/object:Gem::Version
@@ -28,20 +31,23 @@ dependencies:
28
31
  - !ruby/object:Gem::Dependency
29
32
  name: cf-uaa-lib
30
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
31
35
  requirements:
32
36
  - - ~>
33
37
  - !ruby/object:Gem::Version
34
- version: 1.3.10
38
+ version: 2.0.0
35
39
  type: :runtime
36
40
  prerelease: false
37
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
38
43
  requirements:
39
44
  - - ~>
40
45
  - !ruby/object:Gem::Version
41
- version: 1.3.10
46
+ version: 2.0.0
42
47
  - !ruby/object:Gem::Dependency
43
48
  name: multi_json
44
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
45
51
  requirements:
46
52
  - - ~>
47
53
  - !ruby/object:Gem::Version
@@ -49,6 +55,7 @@ dependencies:
49
55
  type: :runtime
50
56
  prerelease: false
51
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
52
59
  requirements:
53
60
  - - ~>
54
61
  - !ruby/object:Gem::Version
@@ -56,6 +63,7 @@ dependencies:
56
63
  - !ruby/object:Gem::Dependency
57
64
  name: multipart-post
58
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
59
67
  requirements:
60
68
  - - ~>
61
69
  - !ruby/object:Gem::Version
@@ -63,6 +71,7 @@ dependencies:
63
71
  type: :runtime
64
72
  prerelease: false
65
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
66
75
  requirements:
67
76
  - - ~>
68
77
  - !ruby/object:Gem::Version
@@ -70,6 +79,7 @@ dependencies:
70
79
  - !ruby/object:Gem::Dependency
71
80
  name: rubyzip
72
81
  requirement: !ruby/object:Gem::Requirement
82
+ none: false
73
83
  requirements:
74
84
  - - ~>
75
85
  - !ruby/object:Gem::Version
@@ -77,6 +87,7 @@ dependencies:
77
87
  type: :runtime
78
88
  prerelease: false
79
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
80
91
  requirements:
81
92
  - - ~>
82
93
  - !ruby/object:Gem::Version
@@ -84,6 +95,7 @@ dependencies:
84
95
  - !ruby/object:Gem::Dependency
85
96
  name: anchorman
86
97
  requirement: !ruby/object:Gem::Requirement
98
+ none: false
87
99
  requirements:
88
100
  - - ! '>='
89
101
  - !ruby/object:Gem::Version
@@ -91,6 +103,7 @@ dependencies:
91
103
  type: :development
92
104
  prerelease: false
93
105
  version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
94
107
  requirements:
95
108
  - - ! '>='
96
109
  - !ruby/object:Gem::Version
@@ -98,6 +111,7 @@ dependencies:
98
111
  - !ruby/object:Gem::Dependency
99
112
  name: factory_girl
100
113
  requirement: !ruby/object:Gem::Requirement
114
+ none: false
101
115
  requirements:
102
116
  - - ! '>='
103
117
  - !ruby/object:Gem::Version
@@ -105,6 +119,7 @@ dependencies:
105
119
  type: :development
106
120
  prerelease: false
107
121
  version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
108
123
  requirements:
109
124
  - - ! '>='
110
125
  - !ruby/object:Gem::Version
@@ -112,6 +127,7 @@ dependencies:
112
127
  - !ruby/object:Gem::Dependency
113
128
  name: gem-release
114
129
  requirement: !ruby/object:Gem::Requirement
130
+ none: false
115
131
  requirements:
116
132
  - - ! '>='
117
133
  - !ruby/object:Gem::Version
@@ -119,6 +135,7 @@ dependencies:
119
135
  type: :development
120
136
  prerelease: false
121
137
  version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
122
139
  requirements:
123
140
  - - ! '>='
124
141
  - !ruby/object:Gem::Version
@@ -126,6 +143,7 @@ dependencies:
126
143
  - !ruby/object:Gem::Dependency
127
144
  name: json_pure
128
145
  requirement: !ruby/object:Gem::Requirement
146
+ none: false
129
147
  requirements:
130
148
  - - ~>
131
149
  - !ruby/object:Gem::Version
@@ -133,6 +151,7 @@ dependencies:
133
151
  type: :development
134
152
  prerelease: false
135
153
  version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
136
155
  requirements:
137
156
  - - ~>
138
157
  - !ruby/object:Gem::Version
@@ -140,6 +159,7 @@ dependencies:
140
159
  - !ruby/object:Gem::Dependency
141
160
  name: rake
142
161
  requirement: !ruby/object:Gem::Requirement
162
+ none: false
143
163
  requirements:
144
164
  - - ! '>='
145
165
  - !ruby/object:Gem::Version
@@ -147,6 +167,7 @@ dependencies:
147
167
  type: :development
148
168
  prerelease: false
149
169
  version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
150
171
  requirements:
151
172
  - - ! '>='
152
173
  - !ruby/object:Gem::Version
@@ -154,20 +175,23 @@ dependencies:
154
175
  - !ruby/object:Gem::Dependency
155
176
  name: rspec
156
177
  requirement: !ruby/object:Gem::Requirement
178
+ none: false
157
179
  requirements:
158
180
  - - ~>
159
181
  - !ruby/object:Gem::Version
160
- version: '2.13'
182
+ version: '2.14'
161
183
  type: :development
162
184
  prerelease: false
163
185
  version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
164
187
  requirements:
165
188
  - - ~>
166
189
  - !ruby/object:Gem::Version
167
- version: '2.13'
190
+ version: '2.14'
168
191
  - !ruby/object:Gem::Dependency
169
192
  name: shoulda-matchers
170
193
  requirement: !ruby/object:Gem::Requirement
194
+ none: false
171
195
  requirements:
172
196
  - - ~>
173
197
  - !ruby/object:Gem::Version
@@ -175,6 +199,7 @@ dependencies:
175
199
  type: :development
176
200
  prerelease: false
177
201
  version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
178
203
  requirements:
179
204
  - - ~>
180
205
  - !ruby/object:Gem::Version
@@ -182,6 +207,7 @@ dependencies:
182
207
  - !ruby/object:Gem::Dependency
183
208
  name: timecop
184
209
  requirement: !ruby/object:Gem::Requirement
210
+ none: false
185
211
  requirements:
186
212
  - - ~>
187
213
  - !ruby/object:Gem::Version
@@ -189,6 +215,7 @@ dependencies:
189
215
  type: :development
190
216
  prerelease: false
191
217
  version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
192
219
  requirements:
193
220
  - - ~>
194
221
  - !ruby/object:Gem::Version
@@ -196,6 +223,7 @@ dependencies:
196
223
  - !ruby/object:Gem::Dependency
197
224
  name: webmock
198
225
  requirement: !ruby/object:Gem::Requirement
226
+ none: false
199
227
  requirements:
200
228
  - - ~>
201
229
  - !ruby/object:Gem::Version
@@ -203,10 +231,27 @@ dependencies:
203
231
  type: :development
204
232
  prerelease: false
205
233
  version_requirements: !ruby/object:Gem::Requirement
234
+ none: false
206
235
  requirements:
207
236
  - - ~>
208
237
  - !ruby/object:Gem::Version
209
238
  version: '1.9'
239
+ - !ruby/object:Gem::Dependency
240
+ name: putsinator
241
+ requirement: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ! '>='
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ! '>='
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
210
255
  description:
211
256
  email:
212
257
  - vcap-dev@googlegroups.com
@@ -236,6 +281,7 @@ files:
236
281
  - lib/cfoundry/chatty_hash.rb
237
282
  - lib/cfoundry/client.rb
238
283
  - lib/cfoundry/concerns/login_helpers.rb
284
+ - lib/cfoundry/concerns/proxy_options.rb
239
285
  - lib/cfoundry/errors.rb
240
286
  - lib/cfoundry/rest_client.rb
241
287
  - lib/cfoundry/test_support.rb
@@ -384,26 +430,33 @@ files:
384
430
  - spec/support/test_model_builder.rb
385
431
  homepage: http://github.com/cloudfoundry/cfoundry
386
432
  licenses: []
387
- metadata: {}
388
433
  post_install_message:
389
434
  rdoc_options: []
390
435
  require_paths:
391
436
  - lib
392
437
  required_ruby_version: !ruby/object:Gem::Requirement
438
+ none: false
393
439
  requirements:
394
440
  - - ! '>='
395
441
  - !ruby/object:Gem::Version
396
442
  version: '0'
443
+ segments:
444
+ - 0
445
+ hash: -3532839030076498984
397
446
  required_rubygems_version: !ruby/object:Gem::Requirement
447
+ none: false
398
448
  requirements:
399
- - - ! '>'
449
+ - - ! '>='
400
450
  - !ruby/object:Gem::Version
401
- version: 1.3.1
451
+ version: '0'
452
+ segments:
453
+ - 0
454
+ hash: -3532839030076498984
402
455
  requirements: []
403
456
  rubyforge_project: cfoundry
404
- rubygems_version: 2.0.5
457
+ rubygems_version: 1.8.25
405
458
  signing_key:
406
- specification_version: 4
459
+ specification_version: 3
407
460
  summary: High-level library for working with the Cloud Foundry API.
408
461
  test_files:
409
462
  - spec/cc_api_stub/applications_spec.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzcyYjhmZjYxNzg5Yzg5NDFhZDJiZThlZmQzMjdiOGE4ZTg3ODEzMQ==
5
- data.tar.gz: !binary |-
6
- MTFlMTk5ODQ5YTQxMTM2NmJkYjQ2YmFkZDRkOTM5ZDhmNmE1N2JjYQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NTUwNTA2ZmRiN2JhM2MzNjIxZWQ5MzJlMzAwMTRmNGFmN2I4OWQ0MmU0MWFl
10
- Y2YwOWMxMTk1NGUzOWQ3NjJhODgwOTA5ZjY2Y2E5YjRlODJmMjY2ODQ4MDI5
11
- YWYzYjM0MzUwZTkwY2U2NTVjZDNmYjdlNjI1NGY2YTEyZGMxMDQ=
12
- data.tar.gz: !binary |-
13
- ZmMyYTBjMDM0MmNmY2ZjMzVlMzQwY2JmMWY4NDlmMzRjMjlhMzllMzI4N2Uy
14
- MWRjNGEyOGM3ZjM4NjZkOGE0NGRkOTFlODkxZWIwMGExYzcyZTU0NTZhMjU4
15
- MTRmNWE0NjBlMmZkNDQ1ZWIyMzM2NTlkZmIxMzYxNzIxMmY3M2Q=