engineyard 3.1.2 → 3.1.3
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.
- checksums.yaml +4 -4
- data/lib/engineyard/version.rb +2 -2
- data/spec/engineyard/cli/api_spec.rb +6 -6
- data/spec/engineyard/cli_spec.rb +5 -5
- data/spec/engineyard/config_spec.rb +7 -7
- data/spec/engineyard/deploy_config_spec.rb +39 -39
- data/spec/engineyard/eyrc_spec.rb +13 -13
- data/spec/engineyard/repo_spec.rb +8 -8
- data/spec/engineyard_spec.rb +1 -1
- data/spec/ey/deploy_spec.rb +64 -64
- data/spec/ey/ey_spec.rb +3 -3
- data/spec/ey/list_environments_spec.rb +28 -28
- data/spec/ey/login_spec.rb +5 -5
- data/spec/ey/logout_spec.rb +5 -5
- data/spec/ey/logs_spec.rb +5 -5
- data/spec/ey/rebuild_spec.rb +1 -1
- data/spec/ey/recipes/apply_spec.rb +2 -2
- data/spec/ey/recipes/download_spec.rb +3 -3
- data/spec/ey/recipes/upload_spec.rb +8 -8
- data/spec/ey/rollback_spec.rb +13 -13
- data/spec/ey/scp_spec.rb +6 -6
- data/spec/ey/servers_spec.rb +49 -49
- data/spec/ey/ssh_spec.rb +14 -14
- data/spec/ey/status_spec.rb +21 -21
- data/spec/ey/timeout_deploy_spec.rb +3 -3
- data/spec/ey/web/disable_spec.rb +1 -1
- data/spec/ey/web/enable_spec.rb +2 -2
- data/spec/ey/web/restart_spec.rb +1 -1
- data/spec/ey/whoami_spec.rb +5 -5
- data/spec/support/shared_behavior.rb +30 -30
- metadata +9 -9
data/spec/ey/ssh_spec.rb
CHANGED
@@ -36,39 +36,39 @@ shared_examples_for "running ey ssh for select role" do
|
|
36
36
|
login_scenario "one app, one environment"
|
37
37
|
ey command_to_run(:ssh_command => "ls", :environment => 'giblets', :verbose => true)
|
38
38
|
@hosts.each do |host|
|
39
|
-
@raw_ssh_commands.select do |command|
|
39
|
+
expect(@raw_ssh_commands.select do |command|
|
40
40
|
command =~ /^ssh turkey@#{host}.+ ls$/
|
41
|
-
end.
|
41
|
+
end).not_to be_empty
|
42
42
|
end
|
43
|
-
@raw_ssh_commands.select do |command|
|
43
|
+
expect(@raw_ssh_commands.select do |command|
|
44
44
|
command =~ /^ssh turkey.+ ls$/
|
45
|
-
end.count.
|
45
|
+
end.count).to eq(@hosts.count)
|
46
46
|
end
|
47
47
|
|
48
48
|
it "is quiet" do
|
49
49
|
login_scenario "one app, one environment"
|
50
50
|
ey command_to_run(:ssh_command => "ls", :environment => 'giblets', :quiet => true)
|
51
|
-
@out.
|
52
|
-
@out.
|
51
|
+
expect(@out).to match(/ssh.*ls/)
|
52
|
+
expect(@out).not_to match(/Loading application data/)
|
53
53
|
end
|
54
54
|
|
55
55
|
it "runs in bash by default" do
|
56
56
|
login_scenario "one app, one environment"
|
57
57
|
ey command_to_run(:ssh_command => "ls", :environment => 'giblets')
|
58
|
-
@out.
|
58
|
+
expect(@out).to match(/ssh.*bash -lc ls/)
|
59
59
|
end
|
60
60
|
|
61
61
|
it "excludes shell with --no-shell" do
|
62
62
|
login_scenario "one app, one environment"
|
63
63
|
ey command_to_run(:ssh_command => "ls", :environment => 'giblets', :no_shell => true)
|
64
|
-
@out.
|
65
|
-
@out.
|
64
|
+
expect(@out).not_to match(/bash/)
|
65
|
+
expect(@out).to match(/ssh.*ls/)
|
66
66
|
end
|
67
67
|
|
68
68
|
it "accepts an alternate shell" do
|
69
69
|
login_scenario "one app, one environment"
|
70
70
|
ey command_to_run(:ssh_command => "ls", :environment => 'giblets', :shell => 'zsh')
|
71
|
-
@out.
|
71
|
+
expect(@out).to match(/ssh.*zsh -lc ls/)
|
72
72
|
end
|
73
73
|
|
74
74
|
it "raises an error when there are no matching hosts" do
|
@@ -93,7 +93,7 @@ describe "ey ssh" do
|
|
93
93
|
|
94
94
|
it "complains if it has no app master" do
|
95
95
|
ey %w[ssh -e bakon], :expect_failure => true
|
96
|
-
@err.
|
96
|
+
expect(@err).to match(/'bakon' does not have any matching instances/)
|
97
97
|
end
|
98
98
|
|
99
99
|
end
|
@@ -116,7 +116,7 @@ describe "ey ssh without a command" do
|
|
116
116
|
|
117
117
|
def verify_ran(scenario)
|
118
118
|
ssh_target = scenario[:ssh_username] + '@' + scenario[:master_hostname]
|
119
|
-
@raw_ssh_commands.
|
119
|
+
expect(@raw_ssh_commands).to eq(["ssh #{ssh_target}"])
|
120
120
|
end
|
121
121
|
|
122
122
|
include_examples "it takes an environment name and an account name"
|
@@ -136,7 +136,7 @@ describe "ey ssh with a command" do
|
|
136
136
|
|
137
137
|
def verify_ran(scenario)
|
138
138
|
ssh_target = scenario[:ssh_username] + '@' + scenario[:master_hostname]
|
139
|
-
@raw_ssh_commands.
|
139
|
+
expect(@raw_ssh_commands).to eq(["ssh #{ssh_target} 'bash -lc ls'"])
|
140
140
|
end
|
141
141
|
|
142
142
|
include_examples "it takes an environment name and an account name"
|
@@ -179,7 +179,7 @@ describe "ey ssh with a multi-part command" do
|
|
179
179
|
|
180
180
|
def verify_ran(scenario)
|
181
181
|
ssh_target = scenario[:ssh_username] + '@' + scenario[:master_hostname]
|
182
|
-
@raw_ssh_commands.
|
182
|
+
expect(@raw_ssh_commands).to eq(["ssh #{ssh_target} 'bash -lc '\\''echo \"echo\"'\\'"])
|
183
183
|
end
|
184
184
|
|
185
185
|
include_examples "it takes an environment name and an account name"
|
data/spec/ey/status_spec.rb
CHANGED
@@ -10,36 +10,36 @@ describe "ey environments" do
|
|
10
10
|
|
11
11
|
it "tells you it's never been deployed" do
|
12
12
|
fast_failing_ey %w[status -e giblets]
|
13
|
-
@err.
|
13
|
+
expect(@err).to match(/Application rails232app has not been deployed on giblets./)
|
14
14
|
end
|
15
15
|
|
16
16
|
it "outputs the status of the deployment" do
|
17
17
|
fast_ey %w[deploy -e giblets --ref HEAD --no-migrate]
|
18
18
|
fast_ey %w[status -e giblets]
|
19
|
-
@out.
|
20
|
-
@out.
|
21
|
-
@out.
|
22
|
-
@out.
|
23
|
-
@out.
|
24
|
-
@out.
|
25
|
-
@out.
|
26
|
-
@out.
|
27
|
-
@out.
|
28
|
-
@out.
|
19
|
+
expect(@out).to match(/Application:\s+rails232app/)
|
20
|
+
expect(@out).to match(/Environment:\s+giblets/)
|
21
|
+
expect(@out).to match(/Ref:\s+HEAD/)
|
22
|
+
expect(@out).to match(/Resolved Ref:\s+resolved-HEAD/)
|
23
|
+
expect(@out).to match(/Commit:\s+[a-f0-9]{40}/)
|
24
|
+
expect(@out).to match(/Migrate:\s+false/)
|
25
|
+
expect(@out).to match(/Deployed by:\s+One App Many Envs/)
|
26
|
+
expect(@out).to match(/Started at:/)
|
27
|
+
expect(@out).to match(/Finished at:/)
|
28
|
+
expect(@out).to match(/Deployment was successful/)
|
29
29
|
end
|
30
30
|
|
31
31
|
it "quiets almost all of the output with --quiet" do
|
32
32
|
fast_ey %w[deploy -e giblets --ref HEAD --no-migrate]
|
33
33
|
fast_ey %w[status -e giblets -q]
|
34
|
-
@out.
|
35
|
-
@out.
|
36
|
-
@out.
|
37
|
-
@out.
|
38
|
-
@out.
|
39
|
-
@out.
|
40
|
-
@out.
|
41
|
-
@out.
|
42
|
-
@out.
|
43
|
-
@out.
|
34
|
+
expect(@out).not_to match(/Application:\s+rails232app/)
|
35
|
+
expect(@out).not_to match(/Environment:\s+giblets/)
|
36
|
+
expect(@out).not_to match(/Ref:\s+HEAD/)
|
37
|
+
expect(@out).not_to match(/Resolved Ref:\s+resolved-HEAD/)
|
38
|
+
expect(@out).not_to match(/Commit:\s+[a-f0-9]{40}/)
|
39
|
+
expect(@out).not_to match(/Migrate:\s+false/)
|
40
|
+
expect(@out).not_to match(/Deployed by:\s+One App Many Envs/)
|
41
|
+
expect(@out).not_to match(/Started at:/)
|
42
|
+
expect(@out).not_to match(/Finished at:/)
|
43
|
+
expect(@out).to match(/Deployment was successful/)
|
44
44
|
end
|
45
45
|
end
|
@@ -6,13 +6,13 @@ describe "ey timeout-deploy" do
|
|
6
6
|
it "timeouts the last deployment" do
|
7
7
|
login_scenario "Stuck Deployment"
|
8
8
|
fast_ey %w[timeout-deploy]
|
9
|
-
@out.
|
10
|
-
@out.
|
9
|
+
expect(@out).to match(/Marking last deployment failed.../)
|
10
|
+
expect(@out).to match(/Finished at:\s+\w+/)
|
11
11
|
end
|
12
12
|
|
13
13
|
it "complains when there is no stuck deployment" do
|
14
14
|
login_scenario "one app, one environment"
|
15
15
|
fast_failing_ey ["timeout-deploy"]
|
16
|
-
@err.
|
16
|
+
expect(@err).to include(%|No unfinished deployment was found for main / rails232app / giblets.|)
|
17
17
|
end
|
18
18
|
end
|
data/spec/ey/web/disable_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe "ey web disable" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def verify_ran(scenario)
|
16
|
-
@ssh_commands.
|
16
|
+
expect(@ssh_commands).to have_command_like(/engineyard-serverside.*enable_maintenance.*--app #{scenario[:application]}/)
|
17
17
|
end
|
18
18
|
|
19
19
|
include_examples "it takes an environment name and an app name and an account name"
|
data/spec/ey/web/enable_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe "ey web enable" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def verify_ran(scenario)
|
16
|
-
@ssh_commands.
|
16
|
+
expect(@ssh_commands).to have_command_like(/engineyard-serverside.*disable_maintenance.*--app #{scenario[:application]}/)
|
17
17
|
end
|
18
18
|
|
19
19
|
include_examples "it takes an environment name and an app name and an account name"
|
@@ -21,6 +21,6 @@ describe "ey web enable" do
|
|
21
21
|
|
22
22
|
it "fails when given a bad option" do
|
23
23
|
ey %w[web enable --lots --of --bogus --options], :expect_failure => true
|
24
|
-
@err.
|
24
|
+
expect(@err).to include("Unknown switches")
|
25
25
|
end
|
26
26
|
end
|
data/spec/ey/web/restart_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe "ey web restart" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def verify_ran(scenario)
|
16
|
-
@ssh_commands.
|
16
|
+
expect(@ssh_commands).to have_command_like(/engineyard-serverside.*restart.*--app #{scenario[:application]}/)
|
17
17
|
end
|
18
18
|
|
19
19
|
include_examples "it takes an environment name and an app name and an account name"
|
data/spec/ey/whoami_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe "ey whoami" do
|
|
7
7
|
before { login_scenario 'empty' }
|
8
8
|
it "outputs the currently logged in user" do
|
9
9
|
ey %w[whoami]
|
10
|
-
@out.
|
10
|
+
expect(@out).to include("User Name (#{scenario_email})")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -20,11 +20,11 @@ describe "ey whoami" do
|
|
20
20
|
input.puts(scenario_password)
|
21
21
|
end
|
22
22
|
|
23
|
-
@out.
|
24
|
-
@out.
|
25
|
-
@out.
|
23
|
+
expect(@out).to include("We need to fetch your API token; please log in.")
|
24
|
+
expect(@out).to include("Email:")
|
25
|
+
expect(@out).to include("Password:")
|
26
26
|
|
27
|
-
@out.
|
27
|
+
expect(@out).to include("User Name (#{scenario_email})")
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -13,9 +13,9 @@ shared_examples_for "it requires an unambiguous git repo" do
|
|
13
13
|
|
14
14
|
it "lists disambiguating environments to choose from" do
|
15
15
|
run_ey({}, {:expect_failure => true})
|
16
|
-
@err.
|
17
|
-
@err.
|
18
|
-
@err.
|
16
|
+
expect(@err).to include('Multiple environments possible, please be more specific')
|
17
|
+
expect(@err).to match(/giblets/)
|
18
|
+
expect(@err).to match(/keycollector_production/)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
@@ -26,9 +26,9 @@ shared_examples_for "it takes an environment name and an app name and an account
|
|
26
26
|
it "complains when you send --account without a value" do
|
27
27
|
login_scenario "empty"
|
28
28
|
fast_failing_ey command_to_run({}) << '--account'
|
29
|
-
@err.
|
29
|
+
expect(@err).to include("No value provided for option '--account'")
|
30
30
|
fast_failing_ey command_to_run({}) << '-c'
|
31
|
-
@err.
|
31
|
+
expect(@err).to include("No value provided for option '--account'")
|
32
32
|
end
|
33
33
|
|
34
34
|
context "when multiple accounts with collaboration" do
|
@@ -39,11 +39,11 @@ shared_examples_for "it takes an environment name and an app name and an account
|
|
39
39
|
it "fails when the app and environment are ambiguous across accounts" do
|
40
40
|
run_ey({:environment => "giblets", :app => "rails232app", :ref => 'master'}, {:expect_failure => !@succeeds_on_multiple_matches})
|
41
41
|
if @succeeds_on_multiple_matches
|
42
|
-
@err.
|
42
|
+
expect(@err).not_to match(/multiple/i)
|
43
43
|
else
|
44
|
-
@err.
|
45
|
-
@err.
|
46
|
-
@err.
|
44
|
+
expect(@err).to match(/Multiple application environments possible/i)
|
45
|
+
expect(@err).to match(/ey \S+ --account='account_2' --app='rails232app' --environment='giblets'/i)
|
46
|
+
expect(@err).to match(/ey \S+ --account='main' --app='rails232app' --environment='giblets'/i)
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -65,9 +65,9 @@ shared_examples_for "it takes an environment name and an account name" do
|
|
65
65
|
it "complains when you send --account without a value" do
|
66
66
|
login_scenario "empty"
|
67
67
|
fast_failing_ey command_to_run({}) << '--account'
|
68
|
-
@err.
|
68
|
+
expect(@err).to include("No value provided for option '--account'")
|
69
69
|
fast_failing_ey command_to_run({}) << '-c'
|
70
|
-
@err.
|
70
|
+
expect(@err).to include("No value provided for option '--account'")
|
71
71
|
end
|
72
72
|
|
73
73
|
context "when multiple accounts with collaboration" do
|
@@ -77,9 +77,9 @@ shared_examples_for "it takes an environment name and an account name" do
|
|
77
77
|
|
78
78
|
it "fails when the app and environment are ambiguous across accounts" do
|
79
79
|
run_ey({:environment => "giblets"}, {:expect_failure => true})
|
80
|
-
@err.
|
81
|
-
@err.
|
82
|
-
@err.
|
80
|
+
expect(@err).to match(/multiple environments possible/i)
|
81
|
+
expect(@err).to match(/ey \S+ --environment='giblets' --account='account_2'/i)
|
82
|
+
expect(@err).to match(/ey \S+ --environment='giblets' --account='main'/i)
|
83
83
|
end
|
84
84
|
|
85
85
|
it "runs when specifying the account disambiguates the app to deploy" do
|
@@ -96,12 +96,12 @@ shared_examples_for "it takes an environment name and an account name" do
|
|
96
96
|
context "when the backend raises an error" do
|
97
97
|
before do
|
98
98
|
# FIXME, cloud-client needs to provide an API for making responses raise
|
99
|
-
EY::CLI::API.
|
99
|
+
allow(EY::CLI::API).to receive(:new).and_raise(EY::CloudClient::RequestFailed.new("Error: Important infos"))
|
100
100
|
end
|
101
101
|
|
102
102
|
it "returns the error message to the user" do
|
103
103
|
fast_failing_ey(command_to_run({:environment => "giblets", :account => "main"}))
|
104
|
-
@err.
|
104
|
+
expect(@err).to match(/Important infos/)
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -125,15 +125,15 @@ shared_examples_for "it takes an environment name" do
|
|
125
125
|
login_scenario "one app, one environment"
|
126
126
|
# This test must shell out (not sure why, plz FIXME)
|
127
127
|
ey command_to_run(:environment => 'typo-happens-here'), {:expect_failure => true}
|
128
|
-
@err.
|
128
|
+
expect(@err).to match(/No environment found matching .*typo-happens-here/i)
|
129
129
|
end
|
130
130
|
|
131
131
|
it "complains when you send --environment without a value" do
|
132
132
|
login_scenario "empty"
|
133
133
|
fast_failing_ey command_to_run({}) << '--environment'
|
134
|
-
@err.
|
134
|
+
expect(@err).to include("No value provided for option '--environment'")
|
135
135
|
fast_failing_ey command_to_run({}) << '-e'
|
136
|
-
@err.
|
136
|
+
expect(@err).to include("No value provided for option '--environment'")
|
137
137
|
end
|
138
138
|
|
139
139
|
context "outside a git repo" do
|
@@ -158,12 +158,12 @@ shared_examples_for "it takes an environment name" do
|
|
158
158
|
run_ey({:environment => 'staging'}, {:expect_failure => !@succeeds_on_multiple_matches})
|
159
159
|
|
160
160
|
if @succeeds_on_multiple_matches
|
161
|
-
@err.
|
161
|
+
expect(@err).not_to match(/multiple .* possible/i)
|
162
162
|
else
|
163
163
|
if @takes_app_name
|
164
|
-
@err.
|
164
|
+
expect(@err).to match(/multiple application environments possible/i)
|
165
165
|
else
|
166
|
-
@err.
|
166
|
+
expect(@err).to match(/multiple environments possible/i)
|
167
167
|
end
|
168
168
|
end
|
169
169
|
end
|
@@ -184,7 +184,7 @@ shared_examples_for "it takes an environment name" do
|
|
184
184
|
it "complains when it can't guess the environment and its name isn't specified" do
|
185
185
|
login_scenario "one app without environment"
|
186
186
|
run_ey({:environment => nil}, {:expect_failure => true})
|
187
|
-
@err.
|
187
|
+
expect(@err).to match(/No environment found for applications matching remotes:/i)
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
@@ -194,9 +194,9 @@ shared_examples_for "it takes an app name" do
|
|
194
194
|
it "complains when you send --app without a value" do
|
195
195
|
login_scenario "empty"
|
196
196
|
fast_failing_ey command_to_run({}) << '--app'
|
197
|
-
@err.
|
197
|
+
expect(@err).to include("No value provided for option '--app'")
|
198
198
|
fast_failing_ey command_to_run({}) << '-a'
|
199
|
-
@err.
|
199
|
+
expect(@err).to include("No value provided for option '--app'")
|
200
200
|
end
|
201
201
|
|
202
202
|
it "allows you to specify a valid app" do
|
@@ -229,7 +229,7 @@ shared_examples_for "it takes an app name" do
|
|
229
229
|
login_scenario "one app, one environment"
|
230
230
|
run_ey({:environment => 'giblets', :app => 'P-time-SAT-solver', :ref => 'master'},
|
231
231
|
{:expect_failure => true})
|
232
|
-
@err.
|
232
|
+
expect(@err).to match(/No app.*P-time-SAT-solver/i)
|
233
233
|
end
|
234
234
|
|
235
235
|
end
|
@@ -242,7 +242,7 @@ shared_examples_for "it invokes engineyard-serverside" do
|
|
242
242
|
end
|
243
243
|
|
244
244
|
it "passes --verbose to engineyard-serverside" do
|
245
|
-
@ssh_commands.
|
245
|
+
expect(@ssh_commands).to have_command_like(/engineyard-serverside.*--verbose/)
|
246
246
|
end
|
247
247
|
|
248
248
|
it "passes along instance information to engineyard-serverside" do
|
@@ -256,11 +256,11 @@ shared_examples_for "it invokes engineyard-serverside" do
|
|
256
256
|
|
257
257
|
# apps + utilities are all mentioned
|
258
258
|
instance_args.each do |i|
|
259
|
-
@ssh_commands.last.
|
259
|
+
expect(@ssh_commands.last).to match(/#{i}/)
|
260
260
|
end
|
261
261
|
|
262
262
|
# but not database instances
|
263
|
-
@ssh_commands.last.
|
263
|
+
expect(@ssh_commands.last).not_to match(/#{db_instance}/)
|
264
264
|
end
|
265
265
|
|
266
266
|
end
|
@@ -272,7 +272,7 @@ shared_examples_for "it invokes engineyard-serverside" do
|
|
272
272
|
end
|
273
273
|
|
274
274
|
it "omits the --instance-names parameter" do
|
275
|
-
@ssh_commands.last.
|
275
|
+
expect(@ssh_commands.last).not_to include("--instance-names")
|
276
276
|
end
|
277
277
|
end
|
278
278
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: engineyard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Engine Yard Cloud Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: highline
|
@@ -42,30 +42,30 @@ dependencies:
|
|
42
42
|
name: engineyard-serverside-adapter
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 2.2
|
47
|
+
version: '2.2'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 2.2
|
54
|
+
version: '2.2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: engineyard-cloud-client
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.1
|
61
|
+
version: '2.1'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 2.1
|
68
|
+
version: '2.1'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: net-ssh
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -367,7 +367,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
367
367
|
version: '0'
|
368
368
|
requirements: []
|
369
369
|
rubyforge_project:
|
370
|
-
rubygems_version: 2.
|
370
|
+
rubygems_version: 2.4.5
|
371
371
|
signing_key:
|
372
372
|
specification_version: 4
|
373
373
|
summary: Command-line deployment for the Engine Yard cloud
|