vmc 0.5.0.rc2 → 0.5.0.rc3

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.
@@ -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