recap 0.2.0 → 1.0.0

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