cfoundry 0.4.21 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|