engineyard-serverside 2.3.9 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +15 -0
  2. data/bin/engineyard-serverside-execute-hook +31 -0
  3. data/lib/engineyard-serverside/about.rb +3 -0
  4. data/lib/engineyard-serverside/cli.rb +3 -1
  5. data/lib/engineyard-serverside/configuration.rb +5 -0
  6. data/lib/engineyard-serverside/deploy.rb +25 -7
  7. data/lib/engineyard-serverside/maintenance.rb +14 -1
  8. data/lib/engineyard-serverside/paths.rb +4 -0
  9. data/lib/engineyard-serverside/server.rb +3 -2
  10. data/lib/engineyard-serverside/version.rb +1 -1
  11. data/spec/archive_deploy_spec.rb +4 -10
  12. data/spec/basic_deploy_spec.rb +3 -3
  13. data/spec/bundler_deploy_spec.rb +32 -32
  14. data/spec/configuration_spec.rb +42 -42
  15. data/spec/custom_deploy_spec.rb +9 -9
  16. data/spec/deploy_hook_spec.rb +103 -89
  17. data/spec/deprecation_spec.rb +3 -3
  18. data/spec/ey_yml_customized_deploy_spec.rb +21 -21
  19. data/spec/fixtures/repos/executable_hooks/README +1 -0
  20. data/spec/fixtures/repos/executable_hooks/deploy/before_restart +72 -0
  21. data/spec/fixtures/repos/public_system/Gemfile +4 -0
  22. data/spec/fixtures/repos/public_system/Gemfile.lock +12 -0
  23. data/spec/fixtures/repos/public_system/README +5 -0
  24. data/spec/fixtures/repos/public_system/ey.yml +3 -0
  25. data/spec/fixtures/repos/public_system/public/system/cant_touch_this.txt +3 -0
  26. data/spec/lockfile_parser_spec.rb +26 -26
  27. data/spec/multi_dependency_manager_spec.rb +3 -3
  28. data/spec/nodejs_deploy_spec.rb +2 -2
  29. data/spec/php_deploy_spec.rb +7 -7
  30. data/spec/rails31_deploy_spec.rb +56 -56
  31. data/spec/restart_spec.rb +3 -3
  32. data/spec/rollback_spec.rb +19 -19
  33. data/spec/server_spec.rb +16 -16
  34. data/spec/services_deploy_spec.rb +40 -40
  35. data/spec/shell_spec.rb +1 -1
  36. data/spec/source/archive_spec.rb +1 -1
  37. data/spec/source/git_spec.rb +1 -1
  38. data/spec/spec_helper.rb +0 -1
  39. data/spec/sqlite3_deploy_spec.rb +6 -6
  40. data/spec/symlink_spec.rb +15 -0
  41. metadata +139 -154
  42. data/lib/engineyard-serverside/source_strategy.rb +0 -77
@@ -23,12 +23,12 @@ describe "EY::Serverside::Deploy#restart_with_maintenance_page" do
23
23
  config = EY::Serverside::Deploy::Configuration.new('deploy_to' => deploy_dir, 'app' => 'app_name')
24
24
  deployer = TestRestartWithMaintenancePage.realnew(test_servers, config, test_shell)
25
25
  deployer.restart_with_maintenance_page
26
- deployer.call_order.should == %w(
26
+ expect(deployer.call_order).to eq(%w(
27
27
  require_custom_tasks
28
28
  enable_maintenance_page
29
29
  restart
30
30
  disable_maintenance_page
31
- )
31
+ ))
32
32
  end
33
33
  end
34
34
 
@@ -38,6 +38,6 @@ describe "glassfish stack" do
38
38
  config = EY::Serverside::Deploy::Configuration.new('deploy_to' => deploy_dir, 'app' => 'app_name', 'stack' => 'glassfish')
39
39
  deployer = TestRestartDeploy.realnew(test_servers, config, test_shell)
40
40
  deployer.restart_with_maintenance_page
41
- deployer.call_order.should include('enable_maintenance_page')
41
+ expect(deployer.call_order).to include('enable_maintenance_page')
42
42
  end
43
43
  end
@@ -4,14 +4,14 @@ describe "Rolling back" do
4
4
  def setup_good_and_bad_deploy(repo)
5
5
  deploy_test_application(repo, 'migrate' => nil)
6
6
  @good_revision = deploy_dir.join('current', 'REVISION').read.strip
7
- deploy_dir.join('current', 'REVISION').should exist
7
+ expect(deploy_dir.join('current', 'REVISION')).to exist
8
8
  deploy_dir.join('current', 'restart').delete
9
9
  deploy_test_application(repo, 'migrate' => nil)
10
- deploy_dir.join('current', 'REVISION').should exist
10
+ expect(deploy_dir.join('current', 'REVISION')).to exist
11
11
  deploy_dir.join('current', 'restart').delete
12
12
 
13
13
  releases = @deployer.config.paths.all_releases
14
- releases.size.should == 2
14
+ expect(releases.size).to eq(2)
15
15
  @good_release = releases.first
16
16
  @bad_release = releases.last
17
17
  end
@@ -33,13 +33,13 @@ describe "Rolling back" do
33
33
 
34
34
  it "rolls back to the older deploy" do
35
35
  out = read_output
36
- out.should =~ /Rolling back to previous release.*#{@good_revision}/
37
- out.should =~ /Restarting with previous release./
38
- out.should =~ /Finished rollback/
36
+ expect(out).to match(/Rolling back to previous release.*#{@good_revision}/)
37
+ expect(out).to match(/Restarting with previous release./)
38
+ expect(out).to match(/Finished rollback/)
39
39
 
40
- deploy_dir.join('current', 'restart').should exist
41
- @bad_release.should_not exist
42
- @good_release.join('restart').should exist
40
+ expect(deploy_dir.join('current', 'restart')).to exist
41
+ expect(@bad_release).not_to exist
42
+ expect(@good_release.join('restart')).to exist
43
43
  end
44
44
  end
45
45
 
@@ -57,9 +57,9 @@ describe "Rolling back" do
57
57
  expect(out).to include("Storing files in this directory will disrupt latest_release, diff detection, rollback, and possibly other features.")
58
58
  expect(out).to_not include("Restarting with previous release.")
59
59
 
60
- deploy_dir.join('current', 'restart').should_not exist
61
- @bad_release.should exist
62
- @good_release.should exist
60
+ expect(deploy_dir.join('current', 'restart')).not_to exist
61
+ expect(@bad_release).to exist
62
+ expect(@good_release).to exist
63
63
  end
64
64
  end
65
65
 
@@ -71,17 +71,17 @@ describe "Rolling back" do
71
71
 
72
72
  it "rolls back to the older deploy" do
73
73
  out = read_output
74
- out.should =~ /Rolling back to previous release.*#{@good_revision}/
75
- out.should =~ /Restarting with previous release./
76
- out.should =~ /Finished rollback/
74
+ expect(out).to match(/Rolling back to previous release.*#{@good_revision}/)
75
+ expect(out).to match(/Restarting with previous release./)
76
+ expect(out).to match(/Finished rollback/)
77
77
 
78
- deploy_dir.join('current', 'restart').should exist
79
- @bad_release.should_not exist
80
- @good_release.join('restart').should exist
78
+ expect(deploy_dir.join('current', 'restart')).to exist
79
+ expect(@bad_release).not_to exist
80
+ expect(@good_release.join('restart')).to exist
81
81
  end
82
82
 
83
83
  it "loads and uses ey.yml during rollback" do
84
- read_output.should =~ /--without only test/
84
+ expect(read_output).to match(/--without only test/)
85
85
  end
86
86
  end
87
87
  end
@@ -2,26 +2,26 @@ require 'spec_helper'
2
2
 
3
3
  describe EY::Serverside::Server do
4
4
  it "starts off empty" do
5
- EY::Serverside::Servers.new([], test_shell).should be_empty
5
+ expect(EY::Serverside::Servers.new([], test_shell)).to be_empty
6
6
  end
7
7
 
8
8
  it "loads from hashes" do
9
9
  servers = EY::Serverside::Servers.from_hashes([{:hostname => 'otherhost', :roles => %w[fire water]}], test_shell)
10
- servers.size.should == 1
10
+ expect(servers.size).to eq(1)
11
11
  end
12
12
 
13
13
  it "rejects duplicates" do
14
- lambda do
14
+ expect do
15
15
  EY::Serverside::Servers.from_hashes([
16
16
  {:hostname => 'otherhost', :roles => [:fire]},
17
17
  {:hostname => 'otherhost', :roles => [:water]},
18
18
  ], test_shell)
19
- end.should raise_error(EY::Serverside::Servers::DuplicateHostname)
19
+ end.to raise_error(EY::Serverside::Servers::DuplicateHostname)
20
20
  end
21
21
 
22
22
  it "makes sure your roles are symbols at creation time" do
23
23
  servers = EY::Serverside::Servers.from_hashes([{:hostname => 'otherhost', :roles => %w[fire water]}], test_shell)
24
- servers.each { |server| server.roles.should == Set[:fire, :water] }
24
+ servers.each { |server| expect(server.roles).to eq(Set[:fire, :water]) }
25
25
  end
26
26
 
27
27
  context "filtering" do
@@ -34,37 +34,37 @@ describe EY::Serverside::Server do
34
34
  end
35
35
 
36
36
  it "#roles works with strings or symbols" do
37
- @servers.roles(:fire ).map{|s| s.hostname}.should == ['firewater']
38
- @servers.roles('fire').map{|s| s.hostname}.should == ['firewater'] # hits the cache the second time
37
+ expect(@servers.roles(:fire ).map{|s| s.hostname}).to eq(['firewater'])
38
+ expect(@servers.roles('fire').map{|s| s.hostname}).to eq(['firewater']) # hits the cache the second time
39
39
  end
40
40
 
41
41
  it "#roles finds all servers with the specified role" do
42
- @servers.roles(:ice).size.should == 2
43
- @servers.roles(:ice).map{|s| s.hostname}.sort.should == ['icewater','localhost']
42
+ expect(@servers.roles(:ice).size).to eq(2)
43
+ expect(@servers.roles(:ice).map{|s| s.hostname}.sort).to eq(['icewater','localhost'])
44
44
  end
45
45
 
46
46
  it "#roles finds all servers with any of the specified roles" do
47
- @servers.roles(:ice, :water).should == @servers
47
+ expect(@servers.roles(:ice, :water)).to eq(@servers)
48
48
  end
49
49
 
50
50
  it "#roles returns everything when asked for :all" do
51
- @servers.roles(:all).should == @servers
51
+ expect(@servers.roles(:all)).to eq(@servers)
52
52
  end
53
53
 
54
54
  it "#roles also yields filtered server set" do
55
55
  @servers.roles(:ice) do |servers|
56
- servers.size.should == 2
57
- servers.map{|s| s.hostname}.sort.should == ['icewater','localhost']
56
+ expect(servers.size).to eq(2)
57
+ expect(servers.map{|s| s.hostname}.sort).to eq(['icewater','localhost'])
58
58
  end
59
59
  end
60
60
 
61
61
  it "#localhost returns the localhost server" do
62
- @servers.localhost.hostname.should == 'localhost'
62
+ expect(@servers.localhost.hostname).to eq('localhost')
63
63
  end
64
64
 
65
65
  it "#remote returns non-localhost servers" do
66
- @servers.remote.size.should == 2
67
- @servers.remote.map {|s| s.hostname}.sort.should == ['firewater','icewater']
66
+ expect(@servers.remote.size).to eq(2)
67
+ expect(@servers.remote.map {|s| s.hostname}.sort).to eq(['firewater','icewater'])
68
68
  end
69
69
  end
70
70
  end
@@ -14,7 +14,7 @@ describe "Deploying an application with services" do
14
14
  end
15
15
 
16
16
  it "warns about missing ey_config" do
17
- read_stderr.should include("WARNING: Gemfile.lock does not contain ey_config")
17
+ expect(read_stderr).to include("WARNING: Gemfile.lock does not contain ey_config")
18
18
  end
19
19
  end
20
20
 
@@ -24,7 +24,7 @@ describe "Deploying an application with services" do
24
24
  end
25
25
 
26
26
  it "works without warnings" do
27
- read_output.should_not =~ /WARNING/
27
+ expect(read_output).not_to match(/WARNING/)
28
28
  end
29
29
  end
30
30
  end
@@ -38,15 +38,15 @@ describe "Deploying an application with services" do
38
38
  end
39
39
 
40
40
  it "works without warning" do
41
- shared_services_file.should exist
42
- shared_services_file.should_not be_symlink
43
- shared_services_file.read.should == "#{@invalid_services_yml}\n"
41
+ expect(shared_services_file).to exist
42
+ expect(shared_services_file).not_to be_symlink
43
+ expect(shared_services_file.read).to eq("#{@invalid_services_yml}\n")
44
44
 
45
- symlinked_services_file.should exist
46
- symlinked_services_file.should be_symlink
47
- shared_services_file.read.should == "#{@invalid_services_yml}\n"
45
+ expect(symlinked_services_file).to exist
46
+ expect(symlinked_services_file).to be_symlink
47
+ expect(shared_services_file.read).to eq("#{@invalid_services_yml}\n")
48
48
 
49
- read_output.should_not =~ /WARNING/
49
+ expect(read_output).not_to match(/WARNING/)
50
50
  end
51
51
  end
52
52
 
@@ -58,15 +58,15 @@ describe "Deploying an application with services" do
58
58
  end
59
59
 
60
60
  it "creates and symlinks ey_services_config_deploy.yml" do
61
- shared_services_file.should exist
62
- shared_services_file.should_not be_symlink
63
- shared_services_file.read.should == "#{services_yml}\n"
61
+ expect(shared_services_file).to exist
62
+ expect(shared_services_file).not_to be_symlink
63
+ expect(shared_services_file.read).to eq("#{services_yml}\n")
64
64
 
65
- symlinked_services_file.should exist
66
- symlinked_services_file.should be_symlink
67
- shared_services_file.read.should == "#{services_yml}\n"
65
+ expect(symlinked_services_file).to exist
66
+ expect(symlinked_services_file).to be_symlink
67
+ expect(shared_services_file.read).to eq("#{services_yml}\n")
68
68
 
69
- read_output.should_not =~ /WARNING/
69
+ expect(read_output).not_to match(/WARNING/)
70
70
  end
71
71
  end
72
72
 
@@ -81,15 +81,15 @@ describe "Deploying an application with services" do
81
81
  end
82
82
 
83
83
  it "silently fails" do
84
- shared_services_file.should exist
85
- shared_services_file.should_not be_symlink
86
- shared_services_file.read.should == "#{services_yml}\n"
84
+ expect(shared_services_file).to exist
85
+ expect(shared_services_file).not_to be_symlink
86
+ expect(shared_services_file.read).to eq("#{services_yml}\n")
87
87
 
88
- symlinked_services_file.should exist
89
- symlinked_services_file.should be_symlink
90
- shared_services_file.read.should == "#{services_yml}\n"
88
+ expect(symlinked_services_file).to exist
89
+ expect(symlinked_services_file).to be_symlink
90
+ expect(shared_services_file.read).to eq("#{services_yml}\n")
91
91
 
92
- read_output.should_not =~ /WARNING/
92
+ expect(read_output).not_to match(/WARNING/)
93
93
  end
94
94
 
95
95
  end
@@ -101,15 +101,15 @@ describe "Deploying an application with services" do
101
101
  })
102
102
  redeploy_test_application('config' => {'services_setup_command' => 'false'})
103
103
 
104
- shared_services_file.should exist
105
- shared_services_file.should_not be_symlink
106
- shared_services_file.read.should == "#{services_yml}\n"
104
+ expect(shared_services_file).to exist
105
+ expect(shared_services_file).not_to be_symlink
106
+ expect(shared_services_file.read).to eq("#{services_yml}\n")
107
107
 
108
- symlinked_services_file.should exist
109
- symlinked_services_file.should be_symlink
110
- shared_services_file.read.should == "#{services_yml}\n"
108
+ expect(symlinked_services_file).to exist
109
+ expect(symlinked_services_file).to be_symlink
110
+ expect(shared_services_file.read).to eq("#{services_yml}\n")
111
111
 
112
- read_output.should include('WARNING: External services configuration not updated')
112
+ expect(read_output).to include('WARNING: External services configuration not updated')
113
113
  end
114
114
 
115
115
  it "does not log a warning or symlink a config file when there is no existing services file" do
@@ -119,10 +119,10 @@ describe "Deploying an application with services" do
119
119
  shared_services_file.delete
120
120
  redeploy_test_application('config' => {'services_setup_command' => 'false'})
121
121
 
122
- shared_services_file.should_not exist
123
- symlinked_services_file.should_not exist
122
+ expect(shared_services_file).not_to exist
123
+ expect(symlinked_services_file).not_to exist
124
124
 
125
- read_output.should_not =~ /WARNING/
125
+ expect(read_output).not_to match(/WARNING/)
126
126
  end
127
127
  end
128
128
 
@@ -138,15 +138,15 @@ describe "Deploying an application with services" do
138
138
  end
139
139
 
140
140
  it "replaces the config with the new one (and symlinks)" do
141
- shared_services_file.should exist
142
- shared_services_file.should_not be_symlink
143
- shared_services_file.read.should == "#{@new_services_yml}\n"
141
+ expect(shared_services_file).to exist
142
+ expect(shared_services_file).not_to be_symlink
143
+ expect(shared_services_file.read).to eq("#{@new_services_yml}\n")
144
144
 
145
- symlinked_services_file.should exist
146
- symlinked_services_file.should be_symlink
147
- shared_services_file.read.should == "#{@new_services_yml}\n"
145
+ expect(symlinked_services_file).to exist
146
+ expect(symlinked_services_file).to be_symlink
147
+ expect(shared_services_file.read).to eq("#{@new_services_yml}\n")
148
148
 
149
- read_output.should_not =~ /WARNING/
149
+ expect(read_output).not_to match(/WARNING/)
150
150
  end
151
151
  end
152
152
 
@@ -37,7 +37,7 @@ describe EY::Serverside::Shell do
37
37
  tstp_3 = "+10m 25s "
38
38
  notstp = " "
39
39
  output.rewind
40
- output.read.should == <<-OUTPUT
40
+ expect(output.read).to eq <<-OUTPUT
41
41
  #{notstp} debug
42
42
 
43
43
  \e[1m\e[33m#{tstp_1} !> notice
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe EY::Serverside::Source::Archive do
4
4
  before do
5
- described_class.any_instance.stub(:runner) { RunnerDouble }
5
+ allow_any_instance_of(described_class).to receive(:runner) { RunnerDouble }
6
6
  end
7
7
 
8
8
  context "source" do
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe EY::Serverside::Source::Git do
4
4
  before do
5
- described_class.any_instance.stub(:runner) { RunnerDouble }
5
+ allow_any_instance_of(described_class).to receive(:runner) { RunnerDouble }
6
6
  end
7
7
 
8
8
  it "errors when required options are not used" do
@@ -275,7 +275,6 @@ exec "$@"
275
275
 
276
276
  @argv = @adapter.deploy.commands.last.to_argv[2..-1]
277
277
 
278
- @binpath = File.expand_path(File.join(File.dirname(__FILE__), '..', 'bin', 'engineyard-serverside'))
279
278
  FullTestDeploy.on_create_callback = block
280
279
 
281
280
  mock_bundler(options['bundle_install_fails'])
@@ -13,26 +13,26 @@ describe "Deploying an application with sqlite3 as the only DB adapter in the Ge
13
13
  end
14
14
 
15
15
  it 'should symlink database.sqlite3.yml' do
16
- @release_path.join('config', 'database.yml').should exist
16
+ expect(@release_path.join('config', 'database.yml')).to exist
17
17
  end
18
18
 
19
19
  it 'should create database.sqlite3.yml in a shared location' do
20
- @shared_path.join('config', 'database.sqlite3.yml').should exist
20
+ expect(@shared_path.join('config', 'database.sqlite3.yml')).to exist
21
21
  end
22
22
 
23
23
  it 'should put a reference to a shared database in database.sqlite3.yml' do
24
24
  contents = @release_path.join('config', 'database.yml').read
25
- contents.should include(@shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s)
25
+ expect(contents).to include(@shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s)
26
26
  end
27
27
 
28
28
  it 'should create the shared database' do
29
- @shared_path.join('databases', "#{@framework_env}.sqlite3").should exist
29
+ expect(@shared_path.join('databases', "#{@framework_env}.sqlite3")).to exist
30
30
  end
31
31
 
32
32
  it 'should contain valid yaml config' do
33
33
  config = YAML.load_file(@release_path.join('config', 'database.yml'))
34
- config[@framework_env]['adapter'].should == 'sqlite3'
35
- config[@framework_env]['database'].should == @shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s
34
+ expect(config[@framework_env]['adapter']).to eq('sqlite3')
35
+ expect(config[@framework_env]['database']).to eq(@shared_path.join('databases', "#{@framework_env}.sqlite3").expand_path.to_s)
36
36
  end
37
37
 
38
38
  end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Deploying an application with conflicting directories" do
4
+ before(:all) do
5
+ deploy_test_application('public_system')
6
+ end
7
+
8
+ it "does not remove the repository's public/system directory" do
9
+ expect(deploy_dir.join('current', 'public', 'system', 'cant_touch_this.txt')).to exist
10
+ end
11
+
12
+ it "warns that maintenance pages are broken" do
13
+ expect(read_output).to include("remove 'public/system' from your repository")
14
+ end
15
+ end
metadata CHANGED
@@ -1,169 +1,150 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: engineyard-serverside
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 2
8
- - 3
9
- - 9
10
- version: 2.3.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.4.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - EY Cloud Team
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-03-26 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2014-06-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: rspec
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
25
17
  - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 63
28
- segments:
29
- - 2
30
- - 12
31
- - 0
32
- version: 2.12.0
33
- prerelease: false
18
+ - !ruby/object:Gem::Version
19
+ version: '2.14'
34
20
  type: :development
35
- requirement: *id001
36
- - !ruby/object:Gem::Dependency
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '2.14'
27
+ - !ruby/object:Gem::Dependency
37
28
  name: rake
38
- version_requirements: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
41
31
  - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 79
44
- segments:
45
- - 10
46
- - 0
47
- - 0
32
+ - !ruby/object:Gem::Version
48
33
  version: 10.0.0
49
- prerelease: false
50
34
  type: :development
51
- requirement: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rdoc
54
- version_requirements: &id003 !ruby/object:Gem::Requirement
55
- none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
63
35
  prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 10.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rdoc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
64
48
  type: :development
65
- requirement: *id003
66
- - !ruby/object:Gem::Dependency
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
67
56
  name: timecop
68
- version_requirements: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - "="
72
- - !ruby/object:Gem::Version
73
- hash: 5
74
- segments:
75
- - 0
76
- - 6
77
- - 1
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
78
61
  version: 0.6.1
79
- prerelease: false
80
62
  type: :development
81
- requirement: *id004
82
- - !ruby/object:Gem::Dependency
83
- name: simplecov
84
- version_requirements: &id005 !ruby/object:Gem::Requirement
85
- none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- hash: 3
90
- segments:
91
- - 0
92
- version: "0"
93
63
  prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.6.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
94
76
  type: :development
95
- requirement: *id005
96
- - !ruby/object:Gem::Dependency
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
97
84
  name: engineyard-cloud-client
98
- version_requirements: &id006 !ruby/object:Gem::Requirement
99
- none: false
100
- requirements:
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
101
87
  - - ~>
102
- - !ruby/object:Gem::Version
103
- hash: 11
104
- segments:
105
- - 1
106
- - 0
107
- - 14
88
+ - !ruby/object:Gem::Version
108
89
  version: 1.0.14
109
- prerelease: false
110
90
  type: :development
111
- requirement: *id006
112
- - !ruby/object:Gem::Dependency
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.14
97
+ - !ruby/object:Gem::Dependency
113
98
  name: engineyard-serverside-adapter
114
- version_requirements: &id007 !ruby/object:Gem::Requirement
115
- none: false
116
- requirements:
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
117
101
  - - ~>
118
- - !ruby/object:Gem::Version
119
- hash: 7
120
- segments:
121
- - 2
122
- - 2
123
- - 0
102
+ - !ruby/object:Gem::Version
124
103
  version: 2.2.0
125
- prerelease: false
126
104
  type: :development
127
- requirement: *id007
128
- - !ruby/object:Gem::Dependency
129
- name: sqlite3
130
- version_requirements: &id008 !ruby/object:Gem::Requirement
131
- none: false
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
135
- hash: 3
136
- segments:
137
- - 0
138
- version: "0"
139
105
  prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 2.2.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: sqlite3
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
140
118
  type: :development
141
- requirement: *id008
142
- - !ruby/object:Gem::Dependency
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
143
126
  name: mime-types
144
- version_requirements: &id009 !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
147
129
  - - ~>
148
- - !ruby/object:Gem::Version
149
- hash: 61
150
- segments:
151
- - 1
152
- - 25
153
- version: "1.25"
154
- prerelease: false
130
+ - !ruby/object:Gem::Version
131
+ version: '1.25'
155
132
  type: :development
156
- requirement: *id009
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '1.25'
157
139
  description:
158
140
  email: cloud@engineyard.com
159
- executables:
141
+ executables:
160
142
  - engineyard-serverside
161
143
  extensions: []
162
-
163
144
  extra_rdoc_files: []
164
-
165
- files:
145
+ files:
166
146
  - bin/engineyard-serverside
147
+ - bin/engineyard-serverside-execute-hook
167
148
  - lib/engineyard-serverside/about.rb
168
149
  - lib/engineyard-serverside/cli.rb
169
150
  - lib/engineyard-serverside/cli_helpers.rb
@@ -191,7 +172,6 @@ files:
191
172
  - lib/engineyard-serverside/source/archive.rb
192
173
  - lib/engineyard-serverside/source/git.rb
193
174
  - lib/engineyard-serverside/source.rb
194
- - lib/engineyard-serverside/source_strategy.rb
195
175
  - lib/engineyard-serverside/spawner.rb
196
176
  - lib/engineyard-serverside/task.rb
197
177
  - lib/engineyard-serverside/version.rb
@@ -351,6 +331,8 @@ files:
351
331
  - spec/fixtures/repos/default/Gemfile
352
332
  - spec/fixtures/repos/default/Gemfile.lock
353
333
  - spec/fixtures/repos/default/README
334
+ - spec/fixtures/repos/executable_hooks/deploy/before_restart
335
+ - spec/fixtures/repos/executable_hooks/README
354
336
  - spec/fixtures/repos/ey_yml/config/ey.yml
355
337
  - spec/fixtures/repos/ey_yml/deploy/before_migrate.rb
356
338
  - spec/fixtures/repos/ey_yml/Gemfile
@@ -406,6 +388,11 @@ files:
406
388
  - spec/fixtures/repos/php_no_composer_lock/composer.json
407
389
  - spec/fixtures/repos/php_no_composer_lock/public/index.php
408
390
  - spec/fixtures/repos/php_no_composer_lock/README
391
+ - spec/fixtures/repos/public_system/ey.yml
392
+ - spec/fixtures/repos/public_system/Gemfile
393
+ - spec/fixtures/repos/public_system/Gemfile.lock
394
+ - spec/fixtures/repos/public_system/public/system/cant_touch_this.txt
395
+ - spec/fixtures/repos/public_system/README
409
396
  - spec/fixtures/repos/sqlite3/Gemfile
410
397
  - spec/fixtures/repos/sqlite3/Gemfile.lock
411
398
  - spec/fixtures/repos/sqlite3/README
@@ -428,42 +415,32 @@ files:
428
415
  - spec/sqlite3_deploy_spec.rb
429
416
  - spec/support/integration.rb
430
417
  - spec/support/source_doubles.rb
418
+ - spec/symlink_spec.rb
431
419
  homepage: http://github.com/engineyard/engineyard-serverside
432
- licenses:
420
+ licenses:
433
421
  - MIT
422
+ metadata: {}
434
423
  post_install_message:
435
424
  rdoc_options: []
436
-
437
- require_paths:
425
+ require_paths:
438
426
  - lib
439
- required_ruby_version: !ruby/object:Gem::Requirement
440
- none: false
441
- requirements:
442
- - - ">="
443
- - !ruby/object:Gem::Version
444
- hash: 3
445
- segments:
446
- - 0
447
- version: "0"
448
- required_rubygems_version: !ruby/object:Gem::Requirement
449
- none: false
450
- requirements:
451
- - - ">="
452
- - !ruby/object:Gem::Version
453
- hash: 23
454
- segments:
455
- - 1
456
- - 3
457
- - 6
427
+ required_ruby_version: !ruby/object:Gem::Requirement
428
+ requirements:
429
+ - - ! '>='
430
+ - !ruby/object:Gem::Version
431
+ version: '0'
432
+ required_rubygems_version: !ruby/object:Gem::Requirement
433
+ requirements:
434
+ - - ! '>='
435
+ - !ruby/object:Gem::Version
458
436
  version: 1.3.6
459
437
  requirements: []
460
-
461
438
  rubyforge_project:
462
- rubygems_version: 1.8.25
439
+ rubygems_version: 2.1.10
463
440
  signing_key:
464
- specification_version: 3
441
+ specification_version: 4
465
442
  summary: A gem that deploys ruby applications on EY Cloud instances
466
- test_files:
443
+ test_files:
467
444
  - spec/archive_deploy_spec.rb
468
445
  - spec/basic_deploy_spec.rb
469
446
  - spec/bundler_deploy_spec.rb
@@ -558,6 +535,8 @@ test_files:
558
535
  - spec/fixtures/repos/default/Gemfile
559
536
  - spec/fixtures/repos/default/Gemfile.lock
560
537
  - spec/fixtures/repos/default/README
538
+ - spec/fixtures/repos/executable_hooks/deploy/before_restart
539
+ - spec/fixtures/repos/executable_hooks/README
561
540
  - spec/fixtures/repos/ey_yml/config/ey.yml
562
541
  - spec/fixtures/repos/ey_yml/deploy/before_migrate.rb
563
542
  - spec/fixtures/repos/ey_yml/Gemfile
@@ -613,6 +592,11 @@ test_files:
613
592
  - spec/fixtures/repos/php_no_composer_lock/composer.json
614
593
  - spec/fixtures/repos/php_no_composer_lock/public/index.php
615
594
  - spec/fixtures/repos/php_no_composer_lock/README
595
+ - spec/fixtures/repos/public_system/ey.yml
596
+ - spec/fixtures/repos/public_system/Gemfile
597
+ - spec/fixtures/repos/public_system/Gemfile.lock
598
+ - spec/fixtures/repos/public_system/public/system/cant_touch_this.txt
599
+ - spec/fixtures/repos/public_system/README
616
600
  - spec/fixtures/repos/sqlite3/Gemfile
617
601
  - spec/fixtures/repos/sqlite3/Gemfile.lock
618
602
  - spec/fixtures/repos/sqlite3/README
@@ -635,3 +619,4 @@ test_files:
635
619
  - spec/sqlite3_deploy_spec.rb
636
620
  - spec/support/integration.rb
637
621
  - spec/support/source_doubles.rb
622
+ - spec/symlink_spec.rb