vmc 0.5.0.rc2 → 0.5.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,10 +10,18 @@ module VMC::App
10
10
  inputs[:name] = input[:name]
11
11
  inputs[:total_instances] = input[:instances]
12
12
  inputs[:space] = client.current_space if client.current_space
13
- inputs[:production] = !!(input[:plan] =~ /^p/i) if v2?
14
- inputs[:framework] = framework = determine_framework
15
- inputs[:command] = input[:command] if can_have_custom_start_command?(framework)
16
- inputs[:runtime] = determine_runtime(framework)
13
+
14
+ if v2?
15
+ inputs[:production] = !!(input[:plan] =~ /^p/i)
16
+ inputs[:command] = input[:command] unless has_procfile?
17
+
18
+ framework = detector.detect_framework
19
+ else
20
+ framework = inputs[:framework] = determine_framework
21
+ inputs[:runtime] = determine_runtime(framework)
22
+ inputs[:command] = input[:command] if can_have_custom_start_command?(framework)
23
+ end
24
+
17
25
  inputs[:buildpack] = input[:buildpack] if v2?
18
26
 
19
27
  human_mb = human_mb(detector.suggested_memory(framework) || 64)
@@ -122,8 +130,12 @@ module VMC::App
122
130
 
123
131
  private
124
132
 
133
+ def has_procfile?
134
+ File.exists?("#@path/Procfile")
135
+ end
136
+
125
137
  def can_have_custom_start_command?(framework)
126
- %w(standalone buildpack).include?(framework.name)
138
+ framework.name == "standalone"
127
139
  end
128
140
 
129
141
  def all_instances
@@ -44,8 +44,10 @@ module VMC::App
44
44
  end
45
45
 
46
46
  def ask_command
47
- if ask("Use custom startup command?", :default => false)
48
- ask("Startup command")
47
+ command = ask("Custom startup command", :default => "none")
48
+
49
+ if command != "none"
50
+ command
49
51
  end
50
52
  end
51
53
 
@@ -22,7 +22,7 @@ module VMC::Start
22
22
  if input.has?(:url)
23
23
  target = sane_target_url(input[:url])
24
24
  with_progress("Setting target to #{c(target, :name)}") do
25
- client(target).info # check that it's valid before setting
25
+ CFoundry::Client.new(target) # check that it's valid before setting
26
26
  set_target(target)
27
27
  end
28
28
  end
@@ -1,4 +1,6 @@
1
1
  module VMC::TestSupport
2
2
  end
3
3
 
4
- Dir.glob(File.expand_path("../test_support/*", __FILE__)).each { |file| require file }
4
+ Dir[File.expand_path('../../../spec/support/**/*.rb', __FILE__)].each do |file|
5
+ require file
6
+ end
data/lib/vmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module VMC
2
- VERSION = "0.5.0.rc2".freeze
2
+ VERSION = "0.5.0.rc3".freeze
3
3
  end
@@ -0,0 +1,3 @@
1
+ require './main'
2
+
3
+ run Main.new
@@ -3,13 +3,13 @@ require 'webmock/rspec'
3
3
  require 'ffaker'
4
4
 
5
5
  if ENV['VMC_TEST_USER'] && ENV['VMC_TEST_PASSWORD'] && ENV['VMC_TEST_TARGET']
6
- describe 'A new user tries to use VMC against v1 production', :ruby19 => true do
6
+ describe 'A new user tries to use VMC against v1 production', :ruby19 => true do
7
7
  include ConsoleAppSpeckerMatchers
8
8
  include VMC::Interactive
9
9
 
10
10
  let(:output) { StringIO.new }
11
11
  let(:out) { output.string.strip_progress_dots }
12
-
12
+
13
13
  let(:target) { ENV['VMC_TEST_TARGET'] }
14
14
  let(:username) { ENV['VMC_TEST_USER'] }
15
15
  let(:password) { ENV['VMC_TEST_PASSWORD'] }
@@ -59,12 +59,16 @@ if ENV['VMC_TEST_USER'] && ENV['VMC_TEST_PASSWORD'] && ENV['VMC_TEST_TARGET']
59
59
  expect(runner).to say "Instances> 1"
60
60
  runner.send_keys ""
61
61
 
62
- expect(runner).to say "1: sinatra"
62
+ expect(runner).to say "1:"
63
63
  expect(runner).to say "2: other"
64
- expect(runner).to say "Framework> sinatra"
65
- runner.send_keys ""
64
+ expect(runner).to say "Framework> "
65
+ runner.send_keys "2"
66
+
67
+ expect(runner).to say ": sinatra"
68
+ expect(runner).to say "Framework> "
69
+ runner.send_keys "sinatra"
66
70
 
67
- expect(runner).to say "1: ruby"
71
+ expect(runner).to say ": ruby"
68
72
  expect(runner).to say "Runtime>"
69
73
  runner.send_keys "ruby19"
70
74
 
@@ -106,4 +110,4 @@ if ENV['VMC_TEST_USER'] && ENV['VMC_TEST_PASSWORD'] && ENV['VMC_TEST_TARGET']
106
110
  end
107
111
  else
108
112
  $stderr.puts 'Skipping v1 integration specs; please provide $VMC_TEST_TARGET, $VMC_TEST_USER, and $VMC_TEST_PASSWORD'
109
- end
113
+ end
@@ -42,12 +42,21 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
42
42
 
43
43
  expect(runner).to say "Authenticating... OK"
44
44
 
45
- expect(runner).to say "1:"
46
- expect(runner).to say "Organization>"
47
- runner.send_keys "1"
48
-
49
- expect(runner).to say /Switching to organization .*\.\.\. OK/
50
- expect(runner).to say /Switching to space .*\.\.\. OK/
45
+ expect(runner).to say(
46
+ "Organization>" => proc {
47
+ runner.send_keys "1"
48
+ expect(runner).to say /Switching to organization .*\.\.\. OK/
49
+ },
50
+ "Switching to organization" => proc {}
51
+ )
52
+
53
+ expect(runner).to say(
54
+ "Space>" => proc {
55
+ runner.send_keys "1"
56
+ expect(runner).to say /Switching to space .*\.\.\. OK/
57
+ },
58
+ "Switching to space" => proc {}
59
+ )
51
60
  end
52
61
 
53
62
  run("#{vmc_bin} app #{app}") do |runner|
@@ -62,24 +71,9 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
62
71
  expect(runner).to say "Instances> 1"
63
72
  runner.send_keys ""
64
73
 
65
- expect(runner).to say ": other"
66
- expect(runner).to say "Framework>"
67
- runner.send_keys "other"
68
-
69
- expect(runner).to say ": buildpack"
70
- expect(runner).to say "Framework>"
71
- runner.send_keys "buildpack"
72
-
73
- expect(runner).to say "Use custom startup command?> "
74
- runner.send_keys "y"
75
-
76
- expect(runner).to say "Startup command> "
74
+ expect(runner).to say "Custom startup command> "
77
75
  runner.send_keys "bundle exec ruby main.rb -p $PORT"
78
76
 
79
- expect(runner).to say ": ruby19"
80
- expect(runner).to say "Runtime>"
81
- runner.send_keys "ruby19"
82
-
83
77
  expect(runner).to say "Memory Limit>"
84
78
  runner.send_keys "64M"
85
79
 
@@ -98,6 +92,11 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
98
92
  expect(runner).to say "Create services for application?> n"
99
93
  runner.send_keys ""
100
94
 
95
+ # skip this
96
+ if runner.expect "Bind other services to application?> n", 1
97
+ runner.send_keys ""
98
+ end
99
+
101
100
  expect(runner).to say "Save configuration?> n"
102
101
  runner.send_keys ""
103
102
 
@@ -123,4 +122,4 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
123
122
  end
124
123
  else
125
124
  $stderr.puts 'Skipping integration specs; please provide $VMC_TEST_TARGET, $VMC_TEST_USER, and $VMC_TEST_PASSWORD'
126
- end
125
+ end
@@ -0,0 +1,32 @@
1
+ require "spec_helper"
2
+
3
+ if ENV['VMC_V2_TEST_TARGET']
4
+ describe 'A new user tries to use VMC against v2 production', :ruby19 => true do
5
+ include ConsoleAppSpeckerMatchers
6
+
7
+ let(:target) { ENV['VMC_V2_TEST_TARGET'] }
8
+
9
+ before do
10
+ Interact::Progress::Dots.start!
11
+ end
12
+
13
+ after do
14
+ Interact::Progress::Dots.stop!
15
+ end
16
+
17
+ it "can switch targets, even if a target is invalid" do
18
+ run("#{vmc_bin} target invalid-target") do |runner|
19
+ expect(runner).to say "target refused"
20
+ runner.wait_for_exit
21
+ end
22
+
23
+ run("#{vmc_bin} target #{target}") do |runner|
24
+ expect(runner).to say "Setting target"
25
+ expect(runner).to say target
26
+ runner.wait_for_exit
27
+ end
28
+ end
29
+ end
30
+ else
31
+ $stderr.puts 'Skipping v2 integration specs; please provide $VMC_V2_TEST_TARGET'
32
+ end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'fakefs/safe'
2
3
 
3
4
  describe VMC::App::Create do
4
5
  let(:inputs) { {} }
@@ -28,10 +29,12 @@ describe VMC::App::Create do
28
29
  end
29
30
  end
30
31
 
32
+ let(:path) { "some-path" }
33
+
31
34
  let(:create) do
32
35
  command = Mothership.commands[:push]
33
36
  create = VMC::App::Push.new(command)
34
- create.path = "some-path"
37
+ create.path = path
35
38
  create.input = Mothership::Inputs.new(command, create, inputs, given, global)
36
39
  create.extend VMC::App::PushInteractions
37
40
  create
@@ -44,8 +47,6 @@ describe VMC::App::Create do
44
47
  { :name => "some-name",
45
48
  :instances => 1,
46
49
  :plan => "p100",
47
- :framework => framework,
48
- :runtime => runtime,
49
50
  :memory => "1G",
50
51
  :command => "ruby main.rb",
51
52
  :buildpack => "git://example.com"
@@ -57,29 +58,28 @@ describe VMC::App::Create do
57
58
  its([:total_instances]) { should eq 1 }
58
59
  its([:space]) { should eq client.current_space }
59
60
  its([:production]) { should eq true }
60
- its([:framework]) { should eq framework }
61
+ its([:framework]) { should eq nil }
62
+ its([:runtime]) { should eq nil }
61
63
  its([:command]) { should eq "ruby main.rb" }
62
- its([:runtime]) { should eq runtime }
63
64
  its([:memory]) { should eq 1024 }
64
65
  its([:buildpack]) { should eq "git://example.com" }
65
66
  end
66
67
 
67
68
  context 'when certain inputs are not given' do
68
- it 'should ask for the name' do
69
+ it 'asks for the name' do
69
70
  inputs.delete(:name)
70
71
  mock_ask("Name") { "some-name" }
71
72
  subject
72
73
  end
73
74
 
74
- it 'should ask for the total instances' do
75
+ it 'asks for the total instances' do
75
76
  inputs.delete(:instances)
76
77
  mock_ask("Instances", anything) { 1 }
77
78
  subject
78
79
  end
79
80
 
80
- it 'should ask for the framework' do
81
- inputs.delete(:framework)
82
- mock_ask('Framework', anything) do |_, options|
81
+ it 'does not ask for the framework' do
82
+ dont_allow_ask('Framework', anything) do |_, options|
83
83
  expect(options[:choices]).to eq frameworks.sort_by(&:name)
84
84
  framework
85
85
  end
@@ -90,26 +90,21 @@ describe VMC::App::Create do
90
90
  before { inputs.delete(:command) }
91
91
 
92
92
  shared_examples 'an app that can have a custom start command' do
93
- it 'should ask if there is a custom start command' do
94
- mock_ask("Use custom startup command?", :default => false) { false }
95
- subject
96
- end
97
-
98
- context 'when the user answers "yes" to the custom start command' do
99
- before { stub_ask("Use custom startup command?", :default => false) { true } }
100
-
101
- it 'should ask for the startup command' do
102
- mock_ask("Startup command") { "foo bar.com" }
103
- subject[:command].should eq "foo bar.com"
93
+ it "asks for a start command with a default as 'none'" do
94
+ mock_ask("Custom startup command", :default => "none") do
95
+ "abcd"
104
96
  end
97
+
98
+ expect(subject[:command]).to eq "abcd"
105
99
  end
106
100
 
107
- context 'when the user answers "no" to the custom start command' do
108
- before { stub_ask("Use custom startup command?", :default => false) { false } }
101
+ context "when the user enters 'none'" do
102
+ it "has the command as nil" do
103
+ stub_ask("Custom startup command", :default => "none") do
104
+ "none"
105
+ end
109
106
 
110
- it 'should not ask for the startup command' do
111
- dont_allow_ask("Startup command")
112
- subject
107
+ expect(subject[:command]).to be_nil
113
108
  end
114
109
  end
115
110
  end
@@ -126,26 +121,51 @@ describe VMC::App::Create do
126
121
  include_examples 'an app that can have a custom start command'
127
122
  end
128
123
 
129
- context 'when the framework is neither "buildpack" nor "standalone"' do
130
- let(:framework) { fake(:framework, :name => "java") }
124
+ describe "getting the start command" do
125
+ before do
126
+ FakeFS.activate!
127
+ Dir.mkdir(path)
128
+
129
+ # fakefs removes fnmatch :'(
130
+ stub(create.send(:detector)).detect_framework
131
+ end
132
+
133
+ after do
134
+ FakeFS.deactivate!
135
+ FakeFS::FileSystem.clear
136
+ end
137
+
138
+ context "when there is a Procfile in the app's root" do
139
+ before do
140
+ File.open("#{path}/Procfile", "w") do |file|
141
+ file.write("this is a procfile")
142
+ end
143
+ end
131
144
 
132
- it 'does not ask if there is a custom start command' do
133
- dont_allow_ask("Startup command")
134
- subject
145
+ it 'does not ask for a start command' do
146
+ dont_allow_ask("Startup command")
147
+ subject
148
+ end
149
+ end
150
+
151
+ context "when there is no Procfile in the app's root" do
152
+ it 'asks for a start command' do
153
+ mock_ask("Custom startup command", :default => "none")
154
+ subject
155
+ end
135
156
  end
136
157
  end
137
158
  end
138
159
 
139
- it 'should ask for the runtime' do
140
- inputs.delete(:runtime)
141
- mock_ask('Runtime', anything) do |_, options|
160
+ it 'does not ask for the runtime' do
161
+ dont_allow_ask('Runtime', anything) do |_, options|
142
162
  expect(options[:choices]).to eq runtimes.sort_by(&:name)
143
163
  runtime
144
164
  end
145
165
  subject
146
166
  end
147
167
 
148
- it 'should ask for the memory' do
168
+ it 'asks for the memory' do
149
169
  inputs.delete(:memory)
150
170
 
151
171
  memory_choices = %w(64M 128M 256M 512M 1G)
@@ -60,6 +60,19 @@ describe VMC::Start::Target do
60
60
  end
61
61
  end
62
62
 
63
+ describe "switching the target" do
64
+ let(:target) { "some-valid-target.com" }
65
+ subject { vmc ["target", target] }
66
+
67
+ context "when the target is not valid" do
68
+ before { WebMock.stub_request(:get, "http://#{target}/info").to_return(:body => "{}") }
69
+
70
+ it "should still be able to switch to a valid target after that" do
71
+ subject
72
+ end
73
+ end
74
+ end
75
+
63
76
  describe "switching the space" do
64
77
  let(:space_name) { spaces.last.name }
65
78
  let(:tokens_yaml) { YAML.load_file(File.expand_path(tokens_file_path)) }
metadata CHANGED
@@ -1,233 +1,229 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vmc
3
- version: !ruby/object:Gem::Version
4
- hash: -31870830
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0.rc3
5
5
  prerelease: 6
6
- segments:
7
- - 0
8
- - 5
9
- - 0
10
- - rc
11
- - 2
12
- version: 0.5.0.rc2
13
6
  platform: ruby
14
- authors:
7
+ authors:
15
8
  - Cloud Foundry Team
16
9
  - Alex Suraci
17
10
  autorequire:
18
11
  bindir: bin
19
12
  cert_chain: []
20
-
21
- date: 2013-02-28 00:00:00 Z
22
- dependencies:
23
- - !ruby/object:Gem::Dependency
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
13
+ date: 2013-03-01 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: json_pure
17
+ requirement: !ruby/object:Gem::Requirement
25
18
  none: false
26
- requirements:
19
+ requirements:
27
20
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 1
32
- - 6
33
- version: "1.6"
34
- prerelease: false
21
+ - !ruby/object:Gem::Version
22
+ version: '1.6'
35
23
  type: :runtime
36
- name: json_pure
37
- requirement: *id001
38
- - !ruby/object:Gem::Dependency
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
40
26
  none: false
41
- requirements:
27
+ requirements:
42
28
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 9
45
- segments:
46
- - 1
47
- - 3
48
- version: "1.3"
49
- prerelease: false
50
- type: :runtime
29
+ - !ruby/object:Gem::Version
30
+ version: '1.6'
31
+ - !ruby/object:Gem::Dependency
51
32
  name: multi_json
52
- requirement: *id002
53
- - !ruby/object:Gem::Dependency
54
- version_requirements: &id003 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
55
34
  none: false
56
- requirements:
35
+ requirements:
57
36
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 1
60
- segments:
61
- - 0
62
- - 5
63
- version: "0.5"
64
- prerelease: false
37
+ - !ruby/object:Gem::Version
38
+ version: '1.3'
65
39
  type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '1.3'
47
+ - !ruby/object:Gem::Dependency
66
48
  name: interact
67
- requirement: *id003
68
- - !ruby/object:Gem::Dependency
69
- version_requirements: &id004 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.5'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: '0.5'
63
+ - !ruby/object:Gem::Dependency
64
+ name: cfoundry
65
+ requirement: !ruby/object:Gem::Requirement
70
66
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- hash: -31870828
75
- segments:
76
- - 0
77
- - 5
78
- - 1
79
- - rc
80
- - 5
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
81
70
  version: 0.5.1.rc5
82
71
  - - <
83
- - !ruby/object:Gem::Version
84
- hash: 7
85
- segments:
86
- - 0
87
- - 6
88
- version: "0.6"
89
- prerelease: false
72
+ - !ruby/object:Gem::Version
73
+ version: '0.6'
90
74
  type: :runtime
91
- name: cfoundry
92
- requirement: *id004
93
- - !ruby/object:Gem::Dependency
94
- version_requirements: &id005 !ruby/object:Gem::Requirement
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ! '>='
80
+ - !ruby/object:Gem::Version
81
+ version: 0.5.1.rc5
82
+ - - <
83
+ - !ruby/object:Gem::Version
84
+ version: '0.6'
85
+ - !ruby/object:Gem::Dependency
86
+ name: clouseau
87
+ requirement: !ruby/object:Gem::Requirement
95
88
  none: false
96
- requirements:
89
+ requirements:
97
90
  - - ~>
98
- - !ruby/object:Gem::Version
99
- hash: 11
100
- segments:
101
- - 0
102
- - 0
103
- version: "0.0"
104
- prerelease: false
91
+ - !ruby/object:Gem::Version
92
+ version: '0.0'
105
93
  type: :runtime
106
- name: clouseau
107
- requirement: *id005
108
- - !ruby/object:Gem::Dependency
109
- version_requirements: &id006 !ruby/object:Gem::Requirement
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: '0.0'
101
+ - !ruby/object:Gem::Dependency
102
+ name: mothership
103
+ requirement: !ruby/object:Gem::Requirement
110
104
  none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 9
115
- segments:
116
- - 0
117
- - 5
118
- - 1
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
119
108
  version: 0.5.1
120
109
  - - <
121
- - !ruby/object:Gem::Version
122
- hash: 15
123
- segments:
124
- - 1
125
- - 0
126
- version: "1.0"
127
- prerelease: false
110
+ - !ruby/object:Gem::Version
111
+ version: '1.0'
128
112
  type: :runtime
129
- name: mothership
130
- requirement: *id006
131
- - !ruby/object:Gem::Dependency
132
- version_requirements: &id007 !ruby/object:Gem::Requirement
133
- none: false
134
- requirements:
135
- - - ~>
136
- - !ruby/object:Gem::Version
137
- hash: 7
138
- segments:
139
- - 0
140
- - 6
141
- version: "0.6"
142
113
  prerelease: false
143
- type: :runtime
114
+ version_requirements: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: 0.5.1
120
+ - - <
121
+ - !ruby/object:Gem::Version
122
+ version: '1.0'
123
+ - !ruby/object:Gem::Dependency
144
124
  name: manifests-vmc-plugin
145
- requirement: *id007
146
- - !ruby/object:Gem::Dependency
147
- version_requirements: &id008 !ruby/object:Gem::Requirement
125
+ requirement: !ruby/object:Gem::Requirement
148
126
  none: false
149
- requirements:
127
+ requirements:
150
128
  - - ~>
151
- - !ruby/object:Gem::Version
152
- hash: 15
153
- segments:
154
- - 0
155
- - 2
156
- version: "0.2"
157
- prerelease: false
129
+ - !ruby/object:Gem::Version
130
+ version: '0.6'
158
131
  type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ none: false
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '0.6'
139
+ - !ruby/object:Gem::Dependency
159
140
  name: tunnel-vmc-plugin
160
- requirement: *id008
161
- - !ruby/object:Gem::Dependency
162
- version_requirements: &id009 !ruby/object:Gem::Requirement
141
+ requirement: !ruby/object:Gem::Requirement
163
142
  none: false
164
- requirements:
143
+ requirements:
165
144
  - - ~>
166
- - !ruby/object:Gem::Version
167
- hash: 25
168
- segments:
169
- - 0
170
- - 9
171
- version: "0.9"
145
+ - !ruby/object:Gem::Version
146
+ version: '0.2'
147
+ type: :runtime
172
148
  prerelease: false
173
- type: :development
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ~>
153
+ - !ruby/object:Gem::Version
154
+ version: '0.2'
155
+ - !ruby/object:Gem::Dependency
174
156
  name: rake
175
- requirement: *id009
176
- - !ruby/object:Gem::Dependency
177
- version_requirements: &id010 !ruby/object:Gem::Requirement
157
+ requirement: !ruby/object:Gem::Requirement
178
158
  none: false
179
- requirements:
159
+ requirements:
180
160
  - - ~>
181
- - !ruby/object:Gem::Version
182
- hash: 21
183
- segments:
184
- - 2
185
- - 11
186
- version: "2.11"
187
- prerelease: false
161
+ - !ruby/object:Gem::Version
162
+ version: '0.9'
188
163
  type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ none: false
167
+ requirements:
168
+ - - ~>
169
+ - !ruby/object:Gem::Version
170
+ version: '0.9'
171
+ - !ruby/object:Gem::Dependency
189
172
  name: rspec
190
- requirement: *id010
191
- - !ruby/object:Gem::Dependency
192
- version_requirements: &id011 !ruby/object:Gem::Requirement
173
+ requirement: !ruby/object:Gem::Requirement
193
174
  none: false
194
- requirements:
175
+ requirements:
195
176
  - - ~>
196
- - !ruby/object:Gem::Version
197
- hash: 29
198
- segments:
199
- - 1
200
- - 9
201
- version: "1.9"
202
- prerelease: false
177
+ - !ruby/object:Gem::Version
178
+ version: '2.11'
203
179
  type: :development
180
+ prerelease: false
181
+ version_requirements: !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ~>
185
+ - !ruby/object:Gem::Version
186
+ version: '2.11'
187
+ - !ruby/object:Gem::Dependency
204
188
  name: webmock
205
- requirement: *id011
206
- - !ruby/object:Gem::Dependency
207
- version_requirements: &id012 !ruby/object:Gem::Requirement
189
+ requirement: !ruby/object:Gem::Requirement
208
190
  none: false
209
- requirements:
191
+ requirements:
210
192
  - - ~>
211
- - !ruby/object:Gem::Version
212
- hash: 15
213
- segments:
214
- - 1
215
- - 0
216
- version: "1.0"
217
- prerelease: false
193
+ - !ruby/object:Gem::Version
194
+ version: '1.9'
218
195
  type: :development
196
+ prerelease: false
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ none: false
199
+ requirements:
200
+ - - ~>
201
+ - !ruby/object:Gem::Version
202
+ version: '1.9'
203
+ - !ruby/object:Gem::Dependency
219
204
  name: rr
220
- requirement: *id012
205
+ requirement: !ruby/object:Gem::Requirement
206
+ none: false
207
+ requirements:
208
+ - - ~>
209
+ - !ruby/object:Gem::Version
210
+ version: '1.0'
211
+ type: :development
212
+ prerelease: false
213
+ version_requirements: !ruby/object:Gem::Requirement
214
+ none: false
215
+ requirements:
216
+ - - ~>
217
+ - !ruby/object:Gem::Version
218
+ version: '1.0'
221
219
  description:
222
- email:
220
+ email:
223
221
  - vcap-dev@googlegroups.com
224
- executables:
222
+ executables:
225
223
  - vmc
226
224
  extensions: []
227
-
228
225
  extra_rdoc_files: []
229
-
230
- files:
226
+ files:
231
227
  - LICENSE
232
228
  - Rakefile
233
229
  - lib/vmc/cli/app/app.rb
@@ -306,6 +302,7 @@ files:
306
302
  - lib/vmc/test_support.rb
307
303
  - lib/vmc/version.rb
308
304
  - lib/vmc.rb
305
+ - spec/assets/hello-sinatra/config.ru
309
306
  - spec/assets/hello-sinatra/Gemfile
310
307
  - spec/assets/hello-sinatra/Gemfile.lock
311
308
  - spec/assets/hello-sinatra/main.rb
@@ -316,6 +313,7 @@ files:
316
313
  - spec/features/v1/new_user_flow_spec.rb
317
314
  - spec/features/v2/account_lifecycle_spec.rb
318
315
  - spec/features/v2/push_flow_spec.rb
316
+ - spec/features/v2/switching_targets_spec.rb
319
317
  - spec/spec_helper.rb
320
318
  - spec/support/command_helper.rb
321
319
  - spec/support/config_helper.rb
@@ -363,40 +361,33 @@ files:
363
361
  - bin/vmc
364
362
  homepage: http://github.com/cloudfoundry/vmc
365
363
  licenses: []
366
-
367
364
  post_install_message:
368
365
  rdoc_options: []
369
-
370
- require_paths:
366
+ require_paths:
371
367
  - lib
372
- required_ruby_version: !ruby/object:Gem::Requirement
368
+ required_ruby_version: !ruby/object:Gem::Requirement
373
369
  none: false
374
- requirements:
375
- - - ">="
376
- - !ruby/object:Gem::Version
377
- hash: 3
378
- segments:
370
+ requirements:
371
+ - - ! '>='
372
+ - !ruby/object:Gem::Version
373
+ version: '0'
374
+ segments:
379
375
  - 0
380
- version: "0"
381
- required_rubygems_version: !ruby/object:Gem::Requirement
376
+ hash: 167290264189019545
377
+ required_rubygems_version: !ruby/object:Gem::Requirement
382
378
  none: false
383
- requirements:
384
- - - ">"
385
- - !ruby/object:Gem::Version
386
- hash: 25
387
- segments:
388
- - 1
389
- - 3
390
- - 1
379
+ requirements:
380
+ - - ! '>'
381
+ - !ruby/object:Gem::Version
391
382
  version: 1.3.1
392
383
  requirements: []
393
-
394
384
  rubyforge_project: vmc
395
385
  rubygems_version: 1.8.24
396
386
  signing_key:
397
387
  specification_version: 3
398
388
  summary: Friendly command-line interface for Cloud Foundry.
399
- test_files:
389
+ test_files:
390
+ - spec/assets/hello-sinatra/config.ru
400
391
  - spec/assets/hello-sinatra/Gemfile
401
392
  - spec/assets/hello-sinatra/Gemfile.lock
402
393
  - spec/assets/hello-sinatra/main.rb
@@ -407,6 +398,7 @@ test_files:
407
398
  - spec/features/v1/new_user_flow_spec.rb
408
399
  - spec/features/v2/account_lifecycle_spec.rb
409
400
  - spec/features/v2/push_flow_spec.rb
401
+ - spec/features/v2/switching_targets_spec.rb
410
402
  - spec/spec_helper.rb
411
403
  - spec/support/command_helper.rb
412
404
  - spec/support/config_helper.rb