cfoundry 0.4.21 → 0.5.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.
- data/Rakefile +47 -24
- data/lib/cfoundry/auth_token.rb +48 -0
- data/lib/cfoundry/baseclient.rb +96 -277
- data/lib/cfoundry/client.rb +2 -0
- data/lib/cfoundry/concerns/login_helpers.rb +13 -0
- data/lib/cfoundry/errors.rb +21 -13
- data/lib/cfoundry/rest_client.rb +290 -0
- data/lib/cfoundry/test_support.rb +3 -0
- data/lib/cfoundry/trace_helpers.rb +9 -9
- data/lib/cfoundry/uaaclient.rb +66 -74
- data/lib/cfoundry/upload_helpers.rb +2 -0
- data/lib/cfoundry/v1/app.rb +2 -2
- data/lib/cfoundry/v1/base.rb +4 -51
- data/lib/cfoundry/v1/client.rb +7 -30
- data/lib/cfoundry/v1/model.rb +22 -5
- data/lib/cfoundry/v1/model_magic.rb +30 -15
- data/lib/cfoundry/v2/app.rb +2 -5
- data/lib/cfoundry/v2/base.rb +10 -74
- data/lib/cfoundry/v2/client.rb +19 -30
- data/lib/cfoundry/v2/domain.rb +1 -4
- data/lib/cfoundry/v2/model.rb +1 -3
- data/lib/cfoundry/v2/model_magic.rb +13 -23
- data/lib/cfoundry/version.rb +1 -1
- data/lib/cfoundry/zip.rb +1 -1
- data/spec/cfoundry/auth_token_spec.rb +77 -0
- data/spec/cfoundry/baseclient_spec.rb +54 -30
- data/spec/cfoundry/errors_spec.rb +10 -13
- data/spec/cfoundry/rest_client_spec.rb +238 -0
- data/spec/cfoundry/trace_helpers_spec.rb +10 -5
- data/spec/cfoundry/uaaclient_spec.rb +141 -114
- data/spec/cfoundry/upload_helpers_spec.rb +129 -0
- data/spec/cfoundry/v1/base_spec.rb +2 -2
- data/spec/cfoundry/v1/client_spec.rb +17 -0
- data/spec/cfoundry/v1/model_magic_spec.rb +43 -0
- data/spec/cfoundry/v2/base_spec.rb +256 -33
- data/spec/cfoundry/v2/client_spec.rb +68 -0
- data/spec/cfoundry/v2/model_magic_spec.rb +49 -0
- data/spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt +1 -0
- data/spec/fixtures/apps/with_vmcignore/ignored_file.txt +1 -0
- data/spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt +1 -0
- data/spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt +1 -0
- data/spec/fixtures/apps/with_vmcignore/non_ignored_file.txt +1 -0
- data/spec/fixtures/empty_file +0 -0
- data/spec/spec_helper.rb +4 -4
- data/spec/support/randoms.rb +3 -0
- data/spec/support/shared_examples/client_login_examples.rb +46 -0
- data/spec/support/{summaries.rb → shared_examples/model_summary_examples.rb} +0 -0
- data/spec/support/v1_fake_helper.rb +144 -0
- metadata +101 -37
- data/lib/cfoundry/spec_helper.rb +0 -1
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CFoundry::V2::Client do
|
4
|
+
let(:client) { CFoundry::V2::Client.new }
|
5
|
+
|
6
|
+
describe "#register" do
|
7
|
+
let(:uaa) { CFoundry::UAAClient.new }
|
8
|
+
let(:email) { 'test@test.com' }
|
9
|
+
let(:password) { 'secret' }
|
10
|
+
|
11
|
+
subject { client.register(email, password) }
|
12
|
+
|
13
|
+
it "creates the user in uaa and ccng" do
|
14
|
+
stub(client.base).uaa { uaa }
|
15
|
+
stub(uaa).add_user(email, password) { { "id" => "1234" } }
|
16
|
+
|
17
|
+
user = fake(:user)
|
18
|
+
stub(client).user { user }
|
19
|
+
stub(user).create!
|
20
|
+
subject
|
21
|
+
expect(user.guid).to eq "1234"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "#current_user" do
|
26
|
+
subject { client.current_user }
|
27
|
+
before { client.token = token }
|
28
|
+
|
29
|
+
context "when there is no access_token_data" do
|
30
|
+
let(:token) { CFoundry::AuthToken.new("bearer some-access-token", "some-refresh-token") }
|
31
|
+
it { should eq nil }
|
32
|
+
end
|
33
|
+
|
34
|
+
context "when there is access_token_data" do
|
35
|
+
let(:token_data) { { :user_id => "123", :email => "guy@example.com" } }
|
36
|
+
let(:auth_header) { Base64.encode64("{}#{MultiJson.encode(token_data)}") }
|
37
|
+
let(:token) do
|
38
|
+
CFoundry::AuthToken.new("bearer #{auth_header}", "some-refresh-token")
|
39
|
+
end
|
40
|
+
|
41
|
+
it { should be_a CFoundry::V2::User }
|
42
|
+
its(:guid) { should eq "123" }
|
43
|
+
its(:emails) { should eq [{ :value => "guy@example.com"}] }
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "#version" do
|
48
|
+
its(:version) { should eq 2 }
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "#login_prompts" do
|
52
|
+
include_examples "client login prompts"
|
53
|
+
end
|
54
|
+
|
55
|
+
describe "#login" do
|
56
|
+
include_examples "client login" do
|
57
|
+
it 'sets the current organization to nil' do
|
58
|
+
client.current_organization = "org"
|
59
|
+
expect { subject }.to change { client.current_organization }.from("org").to(nil)
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'sets the current space to nil' do
|
63
|
+
client.current_space = "space"
|
64
|
+
expect { subject }.to change { client.current_space }.from("space").to(nil)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -67,6 +67,55 @@ describe CFoundry::V2::ModelMagic do
|
|
67
67
|
expect(subject.foo).to eq "foo"
|
68
68
|
end
|
69
69
|
end
|
70
|
+
|
71
|
+
context 'when the attribute has a custom json key' do
|
72
|
+
let(:mymodel) {
|
73
|
+
fake_model { attribute :foo, :object, :at => :not_foo }
|
74
|
+
}
|
75
|
+
|
76
|
+
subject { myobject.fake }
|
77
|
+
|
78
|
+
it 'retrieves the attribute using the custom key' do
|
79
|
+
stub(client.base).my_fake_model(guid) {
|
80
|
+
{ :entity => { :not_foo => "fizz" } }
|
81
|
+
}
|
82
|
+
|
83
|
+
expect(myobject.foo).to eq "fizz"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe 'writing' do
|
89
|
+
context 'when the attribute has a custom json key' do
|
90
|
+
let(:mymodel) {
|
91
|
+
fake_model { attribute :foo, :object, :at => :not_foo }
|
92
|
+
}
|
93
|
+
|
94
|
+
subject { myobject }
|
95
|
+
|
96
|
+
it "stores it in the diff under the json key" do
|
97
|
+
mock(client.base).update_my_fake_model(subject.guid, :not_foo => 123)
|
98
|
+
subject.foo = 123
|
99
|
+
subject.update!
|
100
|
+
end
|
101
|
+
|
102
|
+
it "stores it in the manifest under the json key" do
|
103
|
+
subject.foo = 123
|
104
|
+
|
105
|
+
mock(client.base).create_my_fake_model(:not_foo => 123) do
|
106
|
+
{ :metadata => { :guid => guid },
|
107
|
+
:entity => { :not_foo => 123 }
|
108
|
+
}
|
109
|
+
end
|
110
|
+
|
111
|
+
subject.create!
|
112
|
+
end
|
113
|
+
|
114
|
+
it "is then readable via the attribute name" do
|
115
|
+
subject.foo = 123
|
116
|
+
expect(subject.foo).to eq 123
|
117
|
+
end
|
118
|
+
end
|
70
119
|
end
|
71
120
|
end
|
72
121
|
|
@@ -0,0 +1 @@
|
|
1
|
+
file_in_ignored_dir
|
@@ -0,0 +1 @@
|
|
1
|
+
ignored_file
|
@@ -0,0 +1 @@
|
|
1
|
+
file_in_non_ignored_dir
|
@@ -0,0 +1 @@
|
|
1
|
+
ignored_file
|
@@ -0,0 +1 @@
|
|
1
|
+
non_ignored_file
|
File without changes
|
data/spec/spec_helper.rb
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
+
SPEC_ROOT = File.dirname(__FILE__).freeze
|
2
|
+
|
1
3
|
require "rspec"
|
2
4
|
require "cfoundry"
|
3
5
|
require "webmock/rspec"
|
6
|
+
require "ostruct"
|
4
7
|
|
5
8
|
Dir[File.expand_path('../{support,fakes}/**/*.rb', __FILE__)].each do |file|
|
6
9
|
require file
|
7
10
|
end
|
8
11
|
|
9
|
-
def random_string(tag = "random")
|
10
|
-
sprintf("%s-%x", tag, rand(10 ** 6))
|
11
|
-
end
|
12
|
-
|
13
12
|
RSpec.configure do |c|
|
14
13
|
c.include Fake::FakeMethods
|
14
|
+
c.include V1Fake::FakeMethods
|
15
15
|
c.mock_with :rr
|
16
16
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
shared_examples_for 'client login prompts' do
|
2
|
+
let(:uaa) { CFoundry::UAAClient.new }
|
3
|
+
let(:prompts) do
|
4
|
+
{
|
5
|
+
:user_id => ["text", "User ID"],
|
6
|
+
:pin => ["password", "Your 8-digit Pin #"]
|
7
|
+
}
|
8
|
+
end
|
9
|
+
|
10
|
+
before do
|
11
|
+
stub(client.base).uaa { uaa }
|
12
|
+
stub(uaa).prompts { prompts }
|
13
|
+
end
|
14
|
+
|
15
|
+
subject { client.login_prompts }
|
16
|
+
|
17
|
+
it 'returns the prompts provided by UAA' do
|
18
|
+
expect(subject).to eq(prompts)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
shared_examples_for 'client login' do
|
23
|
+
let(:email) { 'test@test.com' }
|
24
|
+
let(:password) { 'secret' }
|
25
|
+
let(:uaa) { CFoundry::UAAClient.new }
|
26
|
+
let(:access_token) { "some-access-token" }
|
27
|
+
let(:token_info) { CF::UAA::TokenInfo.new({ :access_token => access_token, :token_type => "bearer" }) }
|
28
|
+
|
29
|
+
before do
|
30
|
+
stub(client.base).uaa { uaa }
|
31
|
+
stub(uaa).authorize(email, password) { token_info }
|
32
|
+
end
|
33
|
+
|
34
|
+
subject { client.login(email, password) }
|
35
|
+
|
36
|
+
it 'returns a UAA token' do
|
37
|
+
expect(subject).to be_a(CFoundry::AuthToken)
|
38
|
+
expect(subject.auth_header).to eq("bearer #{access_token}")
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'saves the data as the token' do
|
42
|
+
subject
|
43
|
+
expect(client.token).to be_a(CFoundry::AuthToken)
|
44
|
+
expect(client.token.auth_header).to eq("bearer #{access_token}")
|
45
|
+
end
|
46
|
+
end
|
File without changes
|
@@ -0,0 +1,144 @@
|
|
1
|
+
module V1Fake
|
2
|
+
module FakeMethods
|
3
|
+
def v1_fake_client(attributes = {})
|
4
|
+
CFoundry::V1::FakeClient.new.fake(attributes)
|
5
|
+
end
|
6
|
+
|
7
|
+
def v1_fake(what, attributes = {})
|
8
|
+
v1_fake_client.send(what).fake(attributes)
|
9
|
+
end
|
10
|
+
|
11
|
+
def v1_fake_list(what, count, attributes = {})
|
12
|
+
objs = []
|
13
|
+
|
14
|
+
count.times do
|
15
|
+
objs << fake(what, attributes)
|
16
|
+
end
|
17
|
+
|
18
|
+
objs
|
19
|
+
end
|
20
|
+
|
21
|
+
def v1_fake_model(name = :my_fake_model, &init)
|
22
|
+
# There is a difference between ruby 1.8.7 and 1.8.8 in the order that
|
23
|
+
# the inherited callback gets called. In 1.8.7 the inherited callback
|
24
|
+
# is called after the block; in 1.8.8 and later it's called before.
|
25
|
+
# The upshot for us is we need a failproof way of getting the name
|
26
|
+
# to klass. So we're using a global variable to hand off the value.
|
27
|
+
# Please don't shoot us. - ESH & MMB
|
28
|
+
$object_name = name
|
29
|
+
klass = Class.new(CFoundry::V1::FakeModel) do
|
30
|
+
self.object_name = name
|
31
|
+
end
|
32
|
+
|
33
|
+
klass.class_eval(&init) if init
|
34
|
+
|
35
|
+
klass.define_client_methods
|
36
|
+
|
37
|
+
klass
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def fake(attributes = {})
|
42
|
+
fake_attributes(attributes).each do |k, v|
|
43
|
+
send(:"#{k}=", v)
|
44
|
+
setup_reverse_relationship(v)
|
45
|
+
end
|
46
|
+
|
47
|
+
self
|
48
|
+
end
|
49
|
+
|
50
|
+
def setup_reverse_relationship(v)
|
51
|
+
# assign relationship for 'v' pointing back to this object
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
module CFoundry::V1
|
56
|
+
class Model
|
57
|
+
include V1Fake
|
58
|
+
|
59
|
+
attr_writer :client
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
def get_many(plural)
|
64
|
+
@cache[plural]
|
65
|
+
end
|
66
|
+
|
67
|
+
def fake_attributes(attributes)
|
68
|
+
default_fakes.merge(attributes)
|
69
|
+
end
|
70
|
+
|
71
|
+
# override this to provide basic attributes (like name) dynamically
|
72
|
+
def default_fakes
|
73
|
+
{}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
class FakeBase < Base
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
class FakeClient < Client
|
83
|
+
include Fake
|
84
|
+
|
85
|
+
def initialize(target = "http://example.com", token = nil)
|
86
|
+
@base = FakeBase.new(target, token)
|
87
|
+
end
|
88
|
+
|
89
|
+
private
|
90
|
+
|
91
|
+
def get_many(plural)
|
92
|
+
instance_variable_get(:"@#{plural}")
|
93
|
+
end
|
94
|
+
|
95
|
+
def fake_attributes(attributes)
|
96
|
+
attributes
|
97
|
+
end
|
98
|
+
|
99
|
+
def setup_reverse_relationship(v)
|
100
|
+
if v.is_a?(Model)
|
101
|
+
v.client = self
|
102
|
+
elsif v.is_a?(Array)
|
103
|
+
v.each do |x|
|
104
|
+
setup_reverse_relationship(x)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
|
111
|
+
class FakeModel < CFoundry::V1::Model
|
112
|
+
attr_reader :diff
|
113
|
+
|
114
|
+
def self.inherited(klass)
|
115
|
+
class << klass
|
116
|
+
attr_writer :object_name
|
117
|
+
end
|
118
|
+
|
119
|
+
# There is a difference between ruby 1.8.7 and 1.8.8 in the order that
|
120
|
+
# the inherited callback gets called. In 1.8.7 the inherited callback
|
121
|
+
# is called after the block; in 1.8.8 and later it's called before.
|
122
|
+
# The upshot for us is we need a failproof way of getting the name
|
123
|
+
# to klass. So we're using a global variable to hand off the value.
|
124
|
+
# Please don't shoot us. - ESH & MMB
|
125
|
+
klass.object_name = $object_name
|
126
|
+
super
|
127
|
+
end
|
128
|
+
|
129
|
+
class << self
|
130
|
+
attr_writer :object_name
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
module ModelMagic
|
136
|
+
def self.on_client(&blk)
|
137
|
+
FakeClient.module_eval(&blk)
|
138
|
+
end
|
139
|
+
|
140
|
+
def self.on_base_client(&blk)
|
141
|
+
FakeBase.module_eval(&blk)
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
metadata
CHANGED
@@ -1,26 +1,25 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfoundry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
|
+
- Cloud Foundry Team
|
13
14
|
- Alex Suraci
|
14
15
|
autorequire:
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date: 2013-02-
|
19
|
+
date: 2013-02-06 00:00:00 Z
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
26
25
|
- - ~>
|
@@ -30,12 +29,12 @@ dependencies:
|
|
30
29
|
- 1
|
31
30
|
- 1
|
32
31
|
version: "1.1"
|
32
|
+
prerelease: false
|
33
33
|
type: :runtime
|
34
|
-
|
34
|
+
name: multipart-post
|
35
|
+
requirement: *id001
|
35
36
|
- !ruby/object:Gem::Dependency
|
36
|
-
|
37
|
-
prerelease: false
|
38
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
38
|
none: false
|
40
39
|
requirements:
|
41
40
|
- - ~>
|
@@ -45,12 +44,12 @@ dependencies:
|
|
45
44
|
- 1
|
46
45
|
- 3
|
47
46
|
version: "1.3"
|
47
|
+
prerelease: false
|
48
48
|
type: :runtime
|
49
|
-
|
49
|
+
name: multi_json
|
50
|
+
requirement: *id002
|
50
51
|
- !ruby/object:Gem::Dependency
|
51
|
-
|
52
|
-
prerelease: false
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
53
|
none: false
|
55
54
|
requirements:
|
56
55
|
- - ~>
|
@@ -60,12 +59,28 @@ dependencies:
|
|
60
59
|
- 0
|
61
60
|
- 9
|
62
61
|
version: "0.9"
|
62
|
+
prerelease: false
|
63
63
|
type: :runtime
|
64
|
-
|
64
|
+
name: rubyzip
|
65
|
+
requirement: *id003
|
65
66
|
- !ruby/object:Gem::Dependency
|
66
|
-
|
67
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ~>
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 29
|
73
|
+
segments:
|
74
|
+
- 1
|
75
|
+
- 3
|
76
|
+
- 3
|
77
|
+
version: 1.3.3
|
67
78
|
prerelease: false
|
68
|
-
|
79
|
+
type: :runtime
|
80
|
+
name: cf-uaa-lib
|
81
|
+
requirement: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
69
84
|
none: false
|
70
85
|
requirements:
|
71
86
|
- - ~>
|
@@ -75,12 +90,12 @@ dependencies:
|
|
75
90
|
- 0
|
76
91
|
- 9
|
77
92
|
version: "0.9"
|
93
|
+
prerelease: false
|
78
94
|
type: :development
|
79
|
-
|
95
|
+
name: rake
|
96
|
+
requirement: *id005
|
80
97
|
- !ruby/object:Gem::Dependency
|
81
|
-
|
82
|
-
prerelease: false
|
83
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
98
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
84
99
|
none: false
|
85
100
|
requirements:
|
86
101
|
- - ~>
|
@@ -90,12 +105,12 @@ dependencies:
|
|
90
105
|
- 2
|
91
106
|
- 11
|
92
107
|
version: "2.11"
|
108
|
+
prerelease: false
|
93
109
|
type: :development
|
94
|
-
|
110
|
+
name: rspec
|
111
|
+
requirement: *id006
|
95
112
|
- !ruby/object:Gem::Dependency
|
96
|
-
|
97
|
-
prerelease: false
|
98
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
113
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
99
114
|
none: false
|
100
115
|
requirements:
|
101
116
|
- - ~>
|
@@ -105,12 +120,12 @@ dependencies:
|
|
105
120
|
- 1
|
106
121
|
- 9
|
107
122
|
version: "1.9"
|
123
|
+
prerelease: false
|
108
124
|
type: :development
|
109
|
-
|
125
|
+
name: webmock
|
126
|
+
requirement: *id007
|
110
127
|
- !ruby/object:Gem::Dependency
|
111
|
-
|
112
|
-
prerelease: false
|
113
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
128
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
114
129
|
none: false
|
115
130
|
requirements:
|
116
131
|
- - ~>
|
@@ -120,11 +135,27 @@ dependencies:
|
|
120
135
|
- 1
|
121
136
|
- 0
|
122
137
|
version: "1.0"
|
138
|
+
prerelease: false
|
139
|
+
type: :development
|
140
|
+
name: rr
|
141
|
+
requirement: *id008
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
144
|
+
none: false
|
145
|
+
requirements:
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
hash: 3
|
149
|
+
segments:
|
150
|
+
- 0
|
151
|
+
version: "0"
|
152
|
+
prerelease: false
|
123
153
|
type: :development
|
124
|
-
|
154
|
+
name: gem-release
|
155
|
+
requirement: *id009
|
125
156
|
description:
|
126
157
|
email:
|
127
|
-
-
|
158
|
+
- vcap-dev@googlegroups.com
|
128
159
|
executables: []
|
129
160
|
|
130
161
|
extensions: []
|
@@ -134,11 +165,14 @@ extra_rdoc_files: []
|
|
134
165
|
files:
|
135
166
|
- LICENSE
|
136
167
|
- Rakefile
|
168
|
+
- lib/cfoundry/auth_token.rb
|
137
169
|
- lib/cfoundry/baseclient.rb
|
138
170
|
- lib/cfoundry/chatty_hash.rb
|
139
171
|
- lib/cfoundry/client.rb
|
172
|
+
- lib/cfoundry/concerns/login_helpers.rb
|
140
173
|
- lib/cfoundry/errors.rb
|
141
|
-
- lib/cfoundry/
|
174
|
+
- lib/cfoundry/rest_client.rb
|
175
|
+
- lib/cfoundry/test_support.rb
|
142
176
|
- lib/cfoundry/trace_helpers.rb
|
143
177
|
- lib/cfoundry/uaaclient.rb
|
144
178
|
- lib/cfoundry/upload_helpers.rb
|
@@ -173,12 +207,18 @@ files:
|
|
173
207
|
- lib/cfoundry/version.rb
|
174
208
|
- lib/cfoundry/zip.rb
|
175
209
|
- lib/cfoundry.rb
|
210
|
+
- spec/cfoundry/auth_token_spec.rb
|
176
211
|
- spec/cfoundry/baseclient_spec.rb
|
177
212
|
- spec/cfoundry/errors_spec.rb
|
213
|
+
- spec/cfoundry/rest_client_spec.rb
|
178
214
|
- spec/cfoundry/trace_helpers_spec.rb
|
179
215
|
- spec/cfoundry/uaaclient_spec.rb
|
216
|
+
- spec/cfoundry/upload_helpers_spec.rb
|
180
217
|
- spec/cfoundry/v1/base_spec.rb
|
218
|
+
- spec/cfoundry/v1/client_spec.rb
|
219
|
+
- spec/cfoundry/v1/model_magic_spec.rb
|
181
220
|
- spec/cfoundry/v2/base_spec.rb
|
221
|
+
- spec/cfoundry/v2/client_spec.rb
|
182
222
|
- spec/cfoundry/v2/model_magic_spec.rb
|
183
223
|
- spec/cfoundry/v2/organization_spec.rb
|
184
224
|
- spec/cfoundry/v2/space_spec.rb
|
@@ -193,10 +233,19 @@ files:
|
|
193
233
|
- spec/fakes/service_plan_fake.rb
|
194
234
|
- spec/fakes/space_fake.rb
|
195
235
|
- spec/fakes/user_fake.rb
|
236
|
+
- spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt
|
237
|
+
- spec/fixtures/apps/with_vmcignore/ignored_file.txt
|
238
|
+
- spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt
|
239
|
+
- spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt
|
240
|
+
- spec/fixtures/apps/with_vmcignore/non_ignored_file.txt
|
241
|
+
- spec/fixtures/empty_file
|
196
242
|
- spec/spec_helper.rb
|
197
243
|
- spec/support/fake_helper.rb
|
198
|
-
- spec/support/
|
199
|
-
|
244
|
+
- spec/support/randoms.rb
|
245
|
+
- spec/support/shared_examples/client_login_examples.rb
|
246
|
+
- spec/support/shared_examples/model_summary_examples.rb
|
247
|
+
- spec/support/v1_fake_helper.rb
|
248
|
+
homepage: http://github.com/cloudfoundry/vmc-lib
|
200
249
|
licenses: []
|
201
250
|
|
202
251
|
post_install_message:
|
@@ -230,12 +279,18 @@ signing_key:
|
|
230
279
|
specification_version: 3
|
231
280
|
summary: High-level library for working with the Cloud Foundry API.
|
232
281
|
test_files:
|
282
|
+
- spec/cfoundry/auth_token_spec.rb
|
233
283
|
- spec/cfoundry/baseclient_spec.rb
|
234
284
|
- spec/cfoundry/errors_spec.rb
|
285
|
+
- spec/cfoundry/rest_client_spec.rb
|
235
286
|
- spec/cfoundry/trace_helpers_spec.rb
|
236
287
|
- spec/cfoundry/uaaclient_spec.rb
|
288
|
+
- spec/cfoundry/upload_helpers_spec.rb
|
237
289
|
- spec/cfoundry/v1/base_spec.rb
|
290
|
+
- spec/cfoundry/v1/client_spec.rb
|
291
|
+
- spec/cfoundry/v1/model_magic_spec.rb
|
238
292
|
- spec/cfoundry/v2/base_spec.rb
|
293
|
+
- spec/cfoundry/v2/client_spec.rb
|
239
294
|
- spec/cfoundry/v2/model_magic_spec.rb
|
240
295
|
- spec/cfoundry/v2/organization_spec.rb
|
241
296
|
- spec/cfoundry/v2/space_spec.rb
|
@@ -250,6 +305,15 @@ test_files:
|
|
250
305
|
- spec/fakes/service_plan_fake.rb
|
251
306
|
- spec/fakes/space_fake.rb
|
252
307
|
- spec/fakes/user_fake.rb
|
308
|
+
- spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt
|
309
|
+
- spec/fixtures/apps/with_vmcignore/ignored_file.txt
|
310
|
+
- spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt
|
311
|
+
- spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt
|
312
|
+
- spec/fixtures/apps/with_vmcignore/non_ignored_file.txt
|
313
|
+
- spec/fixtures/empty_file
|
253
314
|
- spec/spec_helper.rb
|
254
315
|
- spec/support/fake_helper.rb
|
255
|
-
- spec/support/
|
316
|
+
- spec/support/randoms.rb
|
317
|
+
- spec/support/shared_examples/client_login_examples.rb
|
318
|
+
- spec/support/shared_examples/model_summary_examples.rb
|
319
|
+
- spec/support/v1_fake_helper.rb
|