recap 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. data/.gitignore +2 -1
  2. data/README.md +55 -10
  3. data/Rakefile +19 -5
  4. data/bin/recap +2 -2
  5. data/features/managing-processes.feature +1 -1
  6. data/features/setting-environment-variables.feature +26 -1
  7. data/features/steps/capistrano_steps.rb +10 -6
  8. data/features/support/project.rb +24 -5
  9. data/features/templates/project/Capfile.erb +1 -1
  10. data/lib/recap/recipes/rails.rb +6 -0
  11. data/lib/recap/recipes/ruby.rb +11 -0
  12. data/lib/recap/recipes/static.rb +3 -0
  13. data/lib/recap/recipes.rb +18 -0
  14. data/lib/recap/support/capistrano_extensions.rb +85 -0
  15. data/lib/recap/support/cli.rb +57 -0
  16. data/lib/recap/{compatibility.rb → support/compatibility.rb} +2 -2
  17. data/lib/recap/support/environment.rb +61 -0
  18. data/lib/recap/support/namespace.rb +47 -0
  19. data/lib/recap/support/shell_command.rb +35 -0
  20. data/lib/recap/support/templates/Capfile.erb +6 -0
  21. data/lib/recap/tasks/bootstrap.rb +77 -0
  22. data/lib/recap/{bundler.rb → tasks/bundler.rb} +15 -6
  23. data/lib/recap/{deploy.rb → tasks/deploy.rb} +30 -17
  24. data/lib/recap/tasks/env.rb +111 -0
  25. data/lib/recap/{foreman.rb → tasks/foreman.rb} +20 -12
  26. data/lib/recap/{preflight.rb → tasks/preflight.rb} +13 -11
  27. data/lib/recap/tasks/rails.rb +42 -0
  28. data/lib/recap/tasks.rb +16 -0
  29. data/lib/recap/version.rb +1 -1
  30. data/lib/recap.rb +119 -10
  31. data/recap.gemspec +3 -2
  32. data/spec/models/capistrano_extensions_spec.rb +41 -0
  33. data/spec/models/cli_spec.rb +25 -0
  34. data/spec/models/environment_spec.rb +14 -14
  35. data/spec/models/shell_command_spec.rb +55 -0
  36. data/spec/spec_helper.rb +1 -1
  37. data/spec/tasks/bootstrap_spec.rb +9 -13
  38. data/spec/tasks/bundler_spec.rb +39 -7
  39. data/spec/tasks/deploy_spec.rb +42 -26
  40. data/spec/tasks/env_spec.rb +81 -5
  41. data/spec/tasks/foreman_spec.rb +10 -5
  42. data/spec/tasks/rails_spec.rb +80 -0
  43. metadata +65 -57
  44. data/doc/index.html +0 -235
  45. data/doc/lib/recap/bootstrap.html +0 -42
  46. data/doc/lib/recap/bundler.html +0 -168
  47. data/doc/lib/recap/capistrano_extensions.html +0 -208
  48. data/doc/lib/recap/cli.html +0 -42
  49. data/doc/lib/recap/compatibility.html +0 -73
  50. data/doc/lib/recap/deploy.html +0 -328
  51. data/doc/lib/recap/env.html +0 -108
  52. data/doc/lib/recap/foreman.html +0 -42
  53. data/doc/lib/recap/namespace.html +0 -42
  54. data/doc/lib/recap/preflight.html +0 -163
  55. data/doc/lib/recap/rails.html +0 -42
  56. data/doc/lib/recap/version.html +0 -42
  57. data/doc/lib/recap.html +0 -42
  58. data/index.rb +0 -62
  59. data/lib/recap/bootstrap.rb +0 -47
  60. data/lib/recap/capistrano_extensions.rb +0 -74
  61. data/lib/recap/cli.rb +0 -32
  62. data/lib/recap/deploy/templates/Capfile.erb +0 -6
  63. data/lib/recap/env.rb +0 -58
  64. data/lib/recap/environment.rb +0 -54
  65. data/lib/recap/namespace.rb +0 -37
  66. data/lib/recap/rails.rb +0 -24
  67. data/lib/recap/ruby.rb +0 -3
  68. data/lib/recap/static.rb +0 -1
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Recap::Env do
3
+ describe Recap::Tasks::Env do
4
4
  let :config do
5
5
  Capistrano::Configuration.new
6
6
  end
@@ -10,7 +10,7 @@ describe Recap::Env do
10
10
  end
11
11
 
12
12
  before do
13
- Recap::Env.load_into(config)
13
+ Recap::Tasks::Env.load_into(config)
14
14
  end
15
15
 
16
16
  describe 'Settings' do
@@ -23,16 +23,92 @@ describe Recap::Env do
23
23
  end
24
24
 
25
25
  describe 'Tasks' do
26
+ before do
27
+ config.set :environment_file, 'path/to/.env'
28
+ namespace.stubs(:deployed_file_exists?).with(config.environment_file, '.').returns(true)
29
+ namespace.stubs(:capture).with("cat #{config.environment_file}").returns('')
30
+ namespace.stubs(:puts)
31
+ end
32
+
26
33
  describe 'env' do
27
- pending 'Tests not written'
34
+ it 'outputs the current environment if one exists' do
35
+ namespace.stubs(:capture).with("cat #{config.environment_file}").returns("A=b\nX=Y")
36
+ namespace.expects(:puts).with('The config variables are:')
37
+ namespace.expects(:puts).with(responds_with(:to_s, Recap::Support::Environment.from_string("A=b\nX=Y").to_s))
38
+ config.find_and_execute_task('env')
39
+ end
28
40
  end
29
41
 
30
42
  describe 'env:set' do
31
- pending 'Tests not written'
43
+ it 'merges the edited environment with the default one' do
44
+ config.set_default_env 'A', 'b'
45
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string("A=b\nX=Y").to_s, config.environment_file)
46
+ namespace.stubs(:env_argv).returns(['X=Y'])
47
+ config.find_and_execute_task('env:set')
48
+ end
49
+
50
+ it 'allows overriding of the default environment' do
51
+ config.set_default_env 'A', 'b'
52
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string('A=c').to_s, config.environment_file)
53
+ namespace.stubs(:env_argv).returns(['A=c'])
54
+ config.find_and_execute_task('env:set')
55
+ end
56
+
57
+ it 'can unset a variable by assigning an empty value to it' do
58
+ namespace.stubs(:capture).with("cat #{config.environment_file}").returns("X=Y\nA=b")
59
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string('X=Y').to_s, config.environment_file)
60
+ namespace.stubs(:env_argv).returns(['A='])
61
+ config.find_and_execute_task('env:set')
62
+ end
63
+
64
+ it 'uploads the new environment' do
65
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string('X=Y').to_s, config.environment_file)
66
+ namespace.stubs(:env_argv).returns(['X=Y'])
67
+ config.find_and_execute_task('env:set')
68
+ end
69
+
70
+ it 'removes the environment if it is empty' do
71
+ namespace.stubs(:capture).with("cat #{config.environment_file}").returns("X=Y")
72
+ namespace.expects(:as_app).with("rm -f #{config.environment_file}", '~')
73
+ namespace.stubs(:env_argv).returns(['X='])
74
+ config.find_and_execute_task('env:set')
75
+ end
76
+ end
77
+
78
+ describe 'env:reset' do
79
+ it 'removes the environment file from the server' do
80
+ namespace.stubs(:env_argv).returns([])
81
+ namespace.expects(:as_app).with("rm -f #{config.environment_file}", '~').at_least_once
82
+ config.find_and_execute_task('env:reset')
83
+ end
32
84
  end
33
85
 
34
86
  describe 'env:edit' do
35
- pending 'Tests not written'
87
+ it 'merges the edited environment with the default one' do
88
+ config.set_default_env 'A', 'b'
89
+ namespace.stubs(:edit_file).returns('X=Y')
90
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string("A=b\nX=Y").to_s, config.environment_file)
91
+ config.find_and_execute_task('env:edit')
92
+ end
93
+
94
+ it 'allows overriding of the default environment' do
95
+ config.set_default_env 'A', 'b'
96
+ namespace.stubs(:edit_file).returns('A=c')
97
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string('A=c').to_s, config.environment_file)
98
+ config.find_and_execute_task('env:edit')
99
+ end
100
+
101
+ it 'uploads the new environment' do
102
+ namespace.stubs(:edit_file).returns('X=Y')
103
+ namespace.expects(:put_as_app).with(Recap::Support::Environment.from_string('X=Y').to_s, config.environment_file)
104
+ config.find_and_execute_task('env:edit')
105
+ end
106
+
107
+ it 'removes the environment if it is empty' do
108
+ namespace.stubs(:edit_file).returns('')
109
+ namespace.expects(:as_app).with("rm -f #{config.environment_file}", '~')
110
+ config.find_and_execute_task('env:edit')
111
+ end
36
112
  end
37
113
  end
38
114
  end
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
+ require 'recap/tasks/foreman'
2
3
 
3
- describe Recap::Foreman do
4
+ describe Recap::Tasks::Foreman do
4
5
  let :config do
5
6
  Capistrano::Configuration.new
6
7
  end
@@ -13,11 +14,15 @@ describe Recap::Foreman do
13
14
  'path/to/deploy/to'
14
15
  end
15
16
 
17
+ let :commands do
18
+ sequence('commands')
19
+ end
20
+
16
21
  before do
17
22
  config.set :application, 'example-app'
18
23
  config.set :application_user, 'example-app-user'
19
24
  config.set :deploy_to, deploy_to
20
- Recap::Foreman.load_into(config)
25
+ Recap::Tasks::Foreman.load_into(config)
21
26
  end
22
27
 
23
28
  describe 'Settings' do
@@ -95,9 +100,9 @@ describe Recap::Foreman do
95
100
  describe 'foreman:export' do
96
101
  it 'runs the foreman export command, then moves the exported files to the export location' do
97
102
  namespace.stubs(:deployed_file_exists?).with(config.procfile).returns(true)
98
- namespace.expects(:as_app).with(config.foreman_export_command).in_sequence
99
- namespace.expects(:sudo).with("rm -f #{config.foreman_export_location}/#{config.application}*").in_sequence
100
- namespace.expects(:sudo).with("cp #{config.foreman_tmp_location}/* #{config.foreman_export_location}").in_sequence
103
+ namespace.expects(:as_app).with(config.foreman_export_command).in_sequence(commands)
104
+ namespace.expects(:sudo).with("rm -f #{config.foreman_export_location}/#{config.application}*").in_sequence(commands)
105
+ namespace.expects(:sudo).with("cp #{config.foreman_tmp_location}/* #{config.foreman_export_location}").in_sequence(commands)
101
106
  config.find_and_execute_task('foreman:export')
102
107
  end
103
108
 
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+ require 'recap/tasks/rails'
3
+
4
+ describe Recap::Tasks::Rails do
5
+ let :config do
6
+ Capistrano::Configuration.new
7
+ end
8
+
9
+ let :namespace do
10
+ config.rails
11
+ end
12
+
13
+ let :deploy_to do
14
+ 'path/to/deploy/to'
15
+ end
16
+
17
+ before do
18
+ config.set :deploy_to, deploy_to
19
+ Recap::Tasks::Rails.load_into(config)
20
+ end
21
+
22
+ describe 'Tasks' do
23
+ describe 'rails:db:load_schema' do
24
+ it 'loads the schema if db/schema.rb exists' do
25
+ namespace.stubs(:deployed_file_exists?).with('db/schema.rb').returns(true)
26
+ namespace.expects(:as_app).with('./bin/rake db:create db:schema:load')
27
+ config.find_and_execute_task('rails:db:load_schema')
28
+ end
29
+
30
+ it 'does nothing if db/schema.rb does not exist' do
31
+ namespace.stubs(:deployed_file_exists?).with('db/schema.rb').returns(false)
32
+ namespace.expects(:as_app).never
33
+ config.find_and_execute_task('rails:db:load_schema')
34
+ end
35
+ end
36
+
37
+ describe 'rails:db:migrate' do
38
+ it 'runs migrations if the schema has changed' do
39
+ namespace.stubs(:deployed_file_changed?).with('db/schema.rb').returns(true)
40
+ namespace.expects(:as_app).with('./bin/rake db:migrate')
41
+ config.find_and_execute_task('rails:db:migrate')
42
+ end
43
+ it 'does nothing if the schema has not changed' do
44
+ namespace.stubs(:deployed_file_changed?).with('db/schema.rb').returns(false)
45
+ namespace.expects(:as_app).never
46
+ config.find_and_execute_task('rails:db:migrate')
47
+ end
48
+ end
49
+
50
+ describe 'assets:precompile' do
51
+ it 'compiles assets on the server' do
52
+ namespace.expects(:as_app).with('./bin/rake RAILS_GROUPS=assets assets:precompile')
53
+ config.find_and_execute_task('rails:assets:precompile')
54
+ end
55
+ end
56
+ end
57
+
58
+ describe 'Callbacks' do
59
+ before do
60
+ Recap::Tasks::Deploy.load_into(config)
61
+ end
62
+
63
+ it 'runs `rails:db:load_schema` after `deploy:clone_code`' do
64
+ config.expects(:find_and_execute_task).with('rails:db:load_schema')
65
+ config.trigger :after, config.find_task('deploy:clone_code')
66
+ end
67
+
68
+ it 'runs `rails:db:migrate` after `deploy:update_code`' do
69
+ config.stubs(:find_and_execute_task)
70
+ config.expects(:find_and_execute_task).with('rails:db:migrate')
71
+ config.trigger :after, config.find_task('deploy:update_code')
72
+ end
73
+
74
+ it 'runs `rails:assets:precompile` after `deploy:update_code`' do
75
+ config.stubs(:find_and_execute_task)
76
+ config.expects(:find_and_execute_task).with('rails:assets:precompile')
77
+ config.trigger :after, config.find_task('deploy:update_code')
78
+ end
79
+ end
80
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-20 00:00:00.000000000 Z
12
+ date: 2012-05-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
16
- requirement: &70142953253620 !ruby/object:Gem::Requirement
16
+ requirement: &70324670503420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.9.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70142953253620
24
+ version_requirements: *70324670503420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thor
27
- requirement: &70142953251580 !ruby/object:Gem::Requirement
27
+ requirement: &70324670502720 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,21 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70142953251580
35
+ version_requirements: *70324670502720
36
+ - !ruby/object:Gem::Dependency
37
+ name: open4
38
+ requirement: &70324670502040 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70324670502040
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rake
38
- requirement: &70142953246460 !ruby/object:Gem::Requirement
49
+ requirement: &70324670501360 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,21 +54,21 @@ dependencies:
43
54
  version: 0.9.2
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70142953246460
57
+ version_requirements: *70324670501360
47
58
  - !ruby/object:Gem::Dependency
48
- name: rocco
49
- requirement: &70142953244940 !ruby/object:Gem::Requirement
59
+ name: fl-rocco
60
+ requirement: &70324670500560 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ~>
53
64
  - !ruby/object:Gem::Version
54
- version: 0.8.1
65
+ version: 1.0.0
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *70142953244940
68
+ version_requirements: *70324670500560
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rspec
60
- requirement: &70142953242500 !ruby/object:Gem::Requirement
71
+ requirement: &70324670499800 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ~>
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: 2.7.0
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *70142953242500
79
+ version_requirements: *70324670499800
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: mocha
71
- requirement: &70142953241400 !ruby/object:Gem::Requirement
82
+ requirement: &70324670499120 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ~>
@@ -76,10 +87,10 @@ dependencies:
76
87
  version: 0.10.0
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *70142953241400
90
+ version_requirements: *70324670499120
80
91
  - !ruby/object:Gem::Dependency
81
92
  name: vagrant
82
- requirement: &70142953239580 !ruby/object:Gem::Requirement
93
+ requirement: &70324670498340 !ruby/object:Gem::Requirement
83
94
  none: false
84
95
  requirements:
85
96
  - - ~>
@@ -87,10 +98,10 @@ dependencies:
87
98
  version: 0.9.7
88
99
  type: :development
89
100
  prerelease: false
90
- version_requirements: *70142953239580
101
+ version_requirements: *70324670498340
91
102
  - !ruby/object:Gem::Dependency
92
103
  name: sahara
93
- requirement: &70142953235920 !ruby/object:Gem::Requirement
104
+ requirement: &70324670496780 !ruby/object:Gem::Requirement
94
105
  none: false
95
106
  requirements:
96
107
  - - ~>
@@ -98,10 +109,10 @@ dependencies:
98
109
  version: 0.0.10
99
110
  type: :development
100
111
  prerelease: false
101
- version_requirements: *70142953235920
112
+ version_requirements: *70324670496780
102
113
  - !ruby/object:Gem::Dependency
103
114
  name: cucumber
104
- requirement: &70142953235380 !ruby/object:Gem::Requirement
115
+ requirement: &70324670495880 !ruby/object:Gem::Requirement
105
116
  none: false
106
117
  requirements:
107
118
  - - ~>
@@ -109,10 +120,10 @@ dependencies:
109
120
  version: 1.1.4
110
121
  type: :development
111
122
  prerelease: false
112
- version_requirements: *70142953235380
123
+ version_requirements: *70324670495880
113
124
  - !ruby/object:Gem::Dependency
114
125
  name: faker
115
- requirement: &70142953234480 !ruby/object:Gem::Requirement
126
+ requirement: &70324670494660 !ruby/object:Gem::Requirement
116
127
  none: false
117
128
  requirements:
118
129
  - - ~>
@@ -120,7 +131,7 @@ dependencies:
120
131
  version: 1.0.1
121
132
  type: :development
122
133
  prerelease: false
123
- version_requirements: *70142953234480
134
+ version_requirements: *70324670494660
124
135
  description: GIT based deployment recipes for Capistrano
125
136
  email:
126
137
  - tom@popdog.net
@@ -137,20 +148,6 @@ files:
137
148
  - Rakefile
138
149
  - Vagrantfile
139
150
  - bin/recap
140
- - doc/index.html
141
- - doc/lib/recap.html
142
- - doc/lib/recap/bootstrap.html
143
- - doc/lib/recap/bundler.html
144
- - doc/lib/recap/capistrano_extensions.html
145
- - doc/lib/recap/cli.html
146
- - doc/lib/recap/compatibility.html
147
- - doc/lib/recap/deploy.html
148
- - doc/lib/recap/env.html
149
- - doc/lib/recap/foreman.html
150
- - doc/lib/recap/namespace.html
151
- - doc/lib/recap/preflight.html
152
- - doc/lib/recap/rails.html
153
- - doc/lib/recap/version.html
154
151
  - features/bundling-gems.feature
155
152
  - features/deploying-projects.feature
156
153
  - features/managing-processes.feature
@@ -164,35 +161,42 @@ files:
164
161
  - features/templates/project/Capfile.erb
165
162
  - features/templates/project/Gemfile.erb
166
163
  - features/templates/project/Procfile.erb
167
- - index.rb
168
164
  - lib/recap.rb
169
- - lib/recap/bootstrap.rb
170
- - lib/recap/bundler.rb
171
- - lib/recap/capistrano_extensions.rb
172
- - lib/recap/cli.rb
173
- - lib/recap/compatibility.rb
174
- - lib/recap/deploy.rb
175
- - lib/recap/deploy/templates/Capfile.erb
176
- - lib/recap/env.rb
177
- - lib/recap/environment.rb
178
- - lib/recap/foreman.rb
179
- - lib/recap/namespace.rb
180
- - lib/recap/preflight.rb
181
- - lib/recap/rails.rb
182
- - lib/recap/ruby.rb
183
- - lib/recap/static.rb
165
+ - lib/recap/recipes.rb
166
+ - lib/recap/recipes/rails.rb
167
+ - lib/recap/recipes/ruby.rb
168
+ - lib/recap/recipes/static.rb
169
+ - lib/recap/support/capistrano_extensions.rb
170
+ - lib/recap/support/cli.rb
171
+ - lib/recap/support/compatibility.rb
172
+ - lib/recap/support/environment.rb
173
+ - lib/recap/support/namespace.rb
174
+ - lib/recap/support/shell_command.rb
175
+ - lib/recap/support/templates/Capfile.erb
176
+ - lib/recap/tasks.rb
177
+ - lib/recap/tasks/bootstrap.rb
178
+ - lib/recap/tasks/bundler.rb
179
+ - lib/recap/tasks/deploy.rb
180
+ - lib/recap/tasks/env.rb
181
+ - lib/recap/tasks/foreman.rb
182
+ - lib/recap/tasks/preflight.rb
183
+ - lib/recap/tasks/rails.rb
184
184
  - lib/recap/version.rb
185
185
  - recap.gemspec
186
+ - spec/models/capistrano_extensions_spec.rb
187
+ - spec/models/cli_spec.rb
186
188
  - spec/models/environment_spec.rb
189
+ - spec/models/shell_command_spec.rb
187
190
  - spec/spec_helper.rb
188
191
  - spec/tasks/bootstrap_spec.rb
189
192
  - spec/tasks/bundler_spec.rb
190
193
  - spec/tasks/deploy_spec.rb
191
194
  - spec/tasks/env_spec.rb
192
195
  - spec/tasks/foreman_spec.rb
196
+ - spec/tasks/rails_spec.rb
193
197
  - test-vm/manifests/base.pp
194
198
  - test-vm/share/.gitkeep
195
- homepage: http://code.gofreerange.com/recap
199
+ homepage: http://gofreerange.com/recap
196
200
  licenses: []
197
201
  post_install_message:
198
202
  rdoc_options: []
@@ -206,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
206
210
  version: '0'
207
211
  segments:
208
212
  - 0
209
- hash: 52580034852729211
213
+ hash: -940325068709851558
210
214
  required_rubygems_version: !ruby/object:Gem::Requirement
211
215
  none: false
212
216
  requirements:
@@ -215,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
215
219
  version: '0'
216
220
  segments:
217
221
  - 0
218
- hash: 52580034852729211
222
+ hash: -940325068709851558
219
223
  requirements: []
220
224
  rubyforge_project:
221
225
  rubygems_version: 1.8.11
@@ -236,10 +240,14 @@ test_files:
236
240
  - features/templates/project/Capfile.erb
237
241
  - features/templates/project/Gemfile.erb
238
242
  - features/templates/project/Procfile.erb
243
+ - spec/models/capistrano_extensions_spec.rb
244
+ - spec/models/cli_spec.rb
239
245
  - spec/models/environment_spec.rb
246
+ - spec/models/shell_command_spec.rb
240
247
  - spec/spec_helper.rb
241
248
  - spec/tasks/bootstrap_spec.rb
242
249
  - spec/tasks/bundler_spec.rb
243
250
  - spec/tasks/deploy_spec.rb
244
251
  - spec/tasks/env_spec.rb
245
252
  - spec/tasks/foreman_spec.rb
253
+ - spec/tasks/rails_spec.rb