capistrano-fanfare 0.0.8 → 0.0.9
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.
- data/README.md +48 -0
- data/lib/capistrano/fanfare/campfire.rb +11 -0
- data/lib/capistrano/fanfare/console.rb +73 -0
- data/lib/capistrano/fanfare/db_seed.rb +37 -0
- data/lib/capistrano/fanfare/version.rb +1 -1
- data/spec/console_spec.rb +136 -0
- data/spec/db_seed_spec.rb +25 -0
- metadata +22 -16
data/README.md
CHANGED
@@ -20,6 +20,54 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
TODO: Write usage instructions here
|
22
22
|
|
23
|
+
Create a `Capfile` that looks like:
|
24
|
+
|
25
|
+
load 'deploy'
|
26
|
+
|
27
|
+
require 'capistrano/fanfare'
|
28
|
+
|
29
|
+
fanfare_recipe 'defaults'
|
30
|
+
fanfare_recipe 'multistage'
|
31
|
+
fanfare_recipe 'git_style'
|
32
|
+
fanfare_recipe 'bundler'
|
33
|
+
fanfare_recipe 'assets'
|
34
|
+
fanfare_recipe 'db_seed'
|
35
|
+
|
36
|
+
fanfare_recipe 'foreman'
|
37
|
+
fanfare_recipe 'database_yaml'
|
38
|
+
|
39
|
+
fanfare_recipe 'colors'
|
40
|
+
fanfare_recipe 'ssh'
|
41
|
+
fanfare_recipe 'console'
|
42
|
+
fanfare_recipe 'campfire'
|
43
|
+
|
44
|
+
Dir['vendor/gems/*/recipes/*.rb','vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }
|
45
|
+
|
46
|
+
load 'config/deploy'
|
47
|
+
|
48
|
+
Pick and choose your fanfare recipes in `Capfile`--they are designed to work
|
49
|
+
independently but also build off each other.
|
50
|
+
|
51
|
+
Create a `config/deploy.rb` that looks like:
|
52
|
+
|
53
|
+
set :application, "myappname"
|
54
|
+
set :repository, "git@mygitserver.com:myappname.git"
|
55
|
+
|
56
|
+
set :campfire_options, :account => 'cfireaccount',
|
57
|
+
:room => 'Dev room',
|
58
|
+
:token => '010010010100101',
|
59
|
+
:ssl => true
|
60
|
+
|
61
|
+
Create a `config/deploy/staging.rb` (assuming the *multistage* recipe) that
|
62
|
+
looks like:
|
63
|
+
|
64
|
+
deploy_server = "myserver.example.com"
|
65
|
+
|
66
|
+
role :web, deploy_server
|
67
|
+
role :app, deploy_server
|
68
|
+
role :db, deploy_server, :primary => true
|
69
|
+
role :db, deploy_server
|
70
|
+
|
23
71
|
## Contributing
|
24
72
|
|
25
73
|
1. Fork it
|
@@ -69,11 +69,18 @@ module Capistrano::Fanfare::Campfire
|
|
69
69
|
# ========================================================================
|
70
70
|
|
71
71
|
namespace :campfire do
|
72
|
+
desc <<-DESC
|
73
|
+
[internal] Posts a message in Campfire before a deploy has started.
|
74
|
+
DESC
|
72
75
|
task :pre_deploy do
|
73
76
|
@deploy_start_time = Time.now
|
74
77
|
speak fetch(:campfire_pre_msg)
|
75
78
|
end
|
76
79
|
|
80
|
+
desc <<-DESC
|
81
|
+
[internal] Posts a message and plays a clip after a successful
|
82
|
+
deployment.
|
83
|
+
DESC
|
77
84
|
task :successful_deploy do
|
78
85
|
elapsed = @deploy_start_time ? Time.now - @deploy_start_time : 0
|
79
86
|
|
@@ -81,6 +88,10 @@ module Capistrano::Fanfare::Campfire
|
|
81
88
|
play fetch(:campfire_success_play)
|
82
89
|
end
|
83
90
|
|
91
|
+
desc <<-DESC
|
92
|
+
[internal] Posts a message and plays a clip after a failed
|
93
|
+
deployment.
|
94
|
+
DESC
|
84
95
|
task :rollback_deploy do
|
85
96
|
speak fetch(:campfire_fail_msg)
|
86
97
|
play fetch(:campfire_fail_play)
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'capistrano'
|
2
|
+
|
3
|
+
module Capistrano::Fanfare::Console
|
4
|
+
def self.load_into(configuration)
|
5
|
+
configuration.load do
|
6
|
+
def _cset(name, *args, &block)
|
7
|
+
unless exists?(name)
|
8
|
+
set(name, *args, &block)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
on :load do
|
13
|
+
if find_task("foreman:start")
|
14
|
+
_cset :console_env_cmd, "foreman run"
|
15
|
+
elsif find_task("bundle:install")
|
16
|
+
_cset :console_env_cmd, "bundle exec"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
# =========================================================================
|
22
|
+
# These are the tasks that are available to help with deploying web apps.
|
23
|
+
# You can have cap give you a summary of them with `cap -T'.
|
24
|
+
# =========================================================================
|
25
|
+
|
26
|
+
##
|
27
|
+
# Gratiously found in the moonshine codebase and iterated on:
|
28
|
+
# https://github.com/railsmachine/moonshine
|
29
|
+
|
30
|
+
desc <<-DESC
|
31
|
+
Runs a rails/rack console on the first application server.
|
32
|
+
DESC
|
33
|
+
task :console, :roles => :app, :except => {:no_symlink => true} do
|
34
|
+
rack_env = fetch(:rails_env, nil) || fetch(:rack_env, nil) || "production"
|
35
|
+
env_cmd = fetch(:console_env_cmd, "")
|
36
|
+
input = ''
|
37
|
+
|
38
|
+
console_test = [
|
39
|
+
"if [ -f #{current_path}/script/console ] ; then echo rails2",
|
40
|
+
"; elif [ -f #{current_path}/script/rails ] ; then echo rails3",
|
41
|
+
"; elif [ -f #{current_path}/config.ru -a -f #{current_path}/Gemfile ]",
|
42
|
+
"&& grep 'gem.*racksh' #{current_path}/Gemfile >/dev/null",
|
43
|
+
"; then echo racksh",
|
44
|
+
"; else echo unknown ; fi"
|
45
|
+
].join(' ')
|
46
|
+
|
47
|
+
case capture(console_test).strip
|
48
|
+
when "rails2"
|
49
|
+
command = "cd #{current_path} && #{env_cmd} ./script/console #{rack_env}"
|
50
|
+
prompt = /^(>|\?)>/
|
51
|
+
when "rails3"
|
52
|
+
command = "cd #{current_path} && #{env_cmd} rails console #{rack_env}"
|
53
|
+
prompt = /:\d{3}:\d+(\*|>)/
|
54
|
+
when "racksh"
|
55
|
+
command = "cd #{current_path} && #{env_cmd} racksh #{rack_env}"
|
56
|
+
prompt = /:\d{3}:\d+(\*|>)/
|
57
|
+
else
|
58
|
+
raise "A suitable rails/rack console could not be found."
|
59
|
+
end
|
60
|
+
|
61
|
+
run command do |channel, stream, data|
|
62
|
+
next if data.chomp == input.chomp || data.chomp == ''
|
63
|
+
print data
|
64
|
+
channel.send_data(input = $stdin.gets) if data =~ prompt
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
if Capistrano::Configuration.instance
|
72
|
+
Capistrano::Fanfare::Console.load_into(Capistrano::Configuration.instance)
|
73
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'capistrano'
|
2
|
+
|
3
|
+
module Capistrano::Fanfare::DbSeed
|
4
|
+
def self.load_into(configuration)
|
5
|
+
configuration.load do
|
6
|
+
|
7
|
+
# =========================================================================
|
8
|
+
# These are the tasks that are available to help with deploying web apps.
|
9
|
+
# You can have cap give you a summary of them with `cap -T'.
|
10
|
+
# =========================================================================
|
11
|
+
|
12
|
+
namespace :db do
|
13
|
+
|
14
|
+
desc <<-DESC
|
15
|
+
Runs the rake db:seed task.
|
16
|
+
|
17
|
+
You can set the rails environment and full path to rake by setting some \
|
18
|
+
overriding variables. The defaults are:
|
19
|
+
|
20
|
+
set :rake, "rake"
|
21
|
+
set :rails_env, "production"
|
22
|
+
|
23
|
+
[WARNING] This command is probably not safe to run multiple times.
|
24
|
+
DESC
|
25
|
+
task :seed, :roles => :db, :only => { :primary => true } do
|
26
|
+
rails_env = fetch(:rails_env, nil) || fetch(:rack_env, nil) || "production"
|
27
|
+
|
28
|
+
run %{cd #{current_path} && #{rake} RAILS_ENV=#{rails_env} db:seed}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
if Capistrano::Configuration.instance
|
36
|
+
Capistrano::Fanfare::DbSeed.load_into(Capistrano::Configuration.instance)
|
37
|
+
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/capistrano'
|
3
|
+
require 'capistrano/fanfare'
|
4
|
+
require 'capistrano/fanfare/console'
|
5
|
+
require 'capistrano/fanfare/bundler'
|
6
|
+
require 'capistrano/fanfare/foreman'
|
7
|
+
|
8
|
+
describe Capistrano::Fanfare::Console do
|
9
|
+
before do
|
10
|
+
@config = Capistrano::Configuration.new
|
11
|
+
Capistrano::Fanfare::Console.load_into(@config)
|
12
|
+
@config.extend(MiniTest::Capistrano::ConfigurationExtension)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "for variables" do
|
16
|
+
it "sets :console_env_cmd to 'foreman run' if foreman recipe is loaded" do
|
17
|
+
Capistrano::Fanfare::Foreman.load_into(@config)
|
18
|
+
@config.trigger(:load)
|
19
|
+
|
20
|
+
@config.fetch(:console_env_cmd).must_equal "foreman run"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "sets :console_env_cmd to 'bundle exec' if foreman recipe is loaded" do
|
24
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
25
|
+
@config.trigger(:load)
|
26
|
+
|
27
|
+
@config.fetch(:console_env_cmd).must_equal "bundle exec"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "for :console task" do
|
32
|
+
before do
|
33
|
+
@config.set :current_path, "/app/current"
|
34
|
+
end
|
35
|
+
|
36
|
+
let(:console_test) do
|
37
|
+
[ "if [ -f /app/current/script/console ] ; then echo rails2",
|
38
|
+
"; elif [ -f /app/current/script/rails ] ; then echo rails3",
|
39
|
+
"; elif [ -f /app/current/config.ru -a -f /app/current/Gemfile ]",
|
40
|
+
"&& grep 'gem.*racksh' /app/current/Gemfile >/dev/null",
|
41
|
+
"; then echo racksh",
|
42
|
+
"; else echo unknown ; fi"
|
43
|
+
].join(' ')
|
44
|
+
end
|
45
|
+
|
46
|
+
it "runs a rails 2.x console if script/console is detected" do
|
47
|
+
@config.captures_responses[console_test] = "rails2\n"
|
48
|
+
@config.find_and_execute_task("console")
|
49
|
+
|
50
|
+
@config.must_have_run "cd /app/current && ./script/console production"
|
51
|
+
end
|
52
|
+
|
53
|
+
it "runs a rails 2.x console with 'forman run'" do
|
54
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
55
|
+
Capistrano::Fanfare::Foreman.load_into(@config)
|
56
|
+
@config.trigger(:load)
|
57
|
+
@config.captures_responses[console_test] = "rails2\n"
|
58
|
+
@config.find_and_execute_task("console")
|
59
|
+
|
60
|
+
@config.must_have_run(
|
61
|
+
"cd /app/current && foreman run ./script/console production")
|
62
|
+
end
|
63
|
+
|
64
|
+
it "runs a rails 2.x console with 'bundle exec'" do
|
65
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
66
|
+
@config.trigger(:load)
|
67
|
+
@config.captures_responses[console_test] = "rails2\n"
|
68
|
+
@config.find_and_execute_task("console")
|
69
|
+
|
70
|
+
@config.must_have_run(
|
71
|
+
"cd /app/current && bundle exec ./script/console production")
|
72
|
+
end
|
73
|
+
|
74
|
+
it "runs a rails 3.x console if script/rails is detected" do
|
75
|
+
@config.captures_responses[console_test] = "rails3\n"
|
76
|
+
@config.find_and_execute_task("console")
|
77
|
+
|
78
|
+
@config.must_have_run "cd /app/current && rails console production"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "runs a rails 3.x console with 'foreman run'" do
|
82
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
83
|
+
Capistrano::Fanfare::Foreman.load_into(@config)
|
84
|
+
@config.trigger(:load)
|
85
|
+
@config.captures_responses[console_test] = "rails3\n"
|
86
|
+
@config.find_and_execute_task("console")
|
87
|
+
|
88
|
+
@config.must_have_run(
|
89
|
+
"cd /app/current && foreman run rails console production")
|
90
|
+
end
|
91
|
+
|
92
|
+
it "runs a rails 3.x console with 'bundle exec'" do
|
93
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
94
|
+
@config.trigger(:load)
|
95
|
+
@config.captures_responses[console_test] = "rails3\n"
|
96
|
+
@config.find_and_execute_task("console")
|
97
|
+
|
98
|
+
@config.must_have_run(
|
99
|
+
"cd /app/current && bundle exec rails console production")
|
100
|
+
end
|
101
|
+
|
102
|
+
it "runs racksh if the racksh gem is detected in the Gemfile" do
|
103
|
+
@config.captures_responses[console_test] = "racksh\n"
|
104
|
+
@config.find_and_execute_task("console")
|
105
|
+
|
106
|
+
@config.must_have_run "cd /app/current && racksh production"
|
107
|
+
end
|
108
|
+
|
109
|
+
it "runs racksh with 'foreman run'" do
|
110
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
111
|
+
Capistrano::Fanfare::Foreman.load_into(@config)
|
112
|
+
@config.trigger(:load)
|
113
|
+
@config.captures_responses[console_test] = "racksh\n"
|
114
|
+
@config.find_and_execute_task("console")
|
115
|
+
|
116
|
+
@config.must_have_run(
|
117
|
+
"cd /app/current && foreman run racksh production")
|
118
|
+
end
|
119
|
+
|
120
|
+
it "runs racksh with 'bundle exec'" do
|
121
|
+
Capistrano::Fanfare::Bundler.load_into(@config)
|
122
|
+
@config.trigger(:load)
|
123
|
+
@config.captures_responses[console_test] = "racksh\n"
|
124
|
+
@config.find_and_execute_task("console")
|
125
|
+
|
126
|
+
@config.must_have_run(
|
127
|
+
"cd /app/current && bundle exec racksh production")
|
128
|
+
end
|
129
|
+
|
130
|
+
it "raises an exception if no suitable console if found" do
|
131
|
+
@config.captures_responses[console_test] = "unknown\n"
|
132
|
+
|
133
|
+
proc { @config.find_and_execute_task("console") }.must_raise RuntimeError
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'minitest/capistrano'
|
3
|
+
require 'capistrano/fanfare'
|
4
|
+
require 'capistrano/fanfare/db_seed'
|
5
|
+
|
6
|
+
describe Capistrano::Fanfare::DbSeed do
|
7
|
+
before do
|
8
|
+
@config = Capistrano::Configuration.new
|
9
|
+
Capistrano::Fanfare::DbSeed.load_into(@config)
|
10
|
+
@config.extend(MiniTest::Capistrano::ConfigurationExtension)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "for namespace :db" do
|
14
|
+
describe "for :seed task" do
|
15
|
+
it "runs the db:seed rake task" do
|
16
|
+
@config.set :current_path, "/a/current"
|
17
|
+
@config.set :rake, "bin/rake"
|
18
|
+
@config.find_and_execute_task("db:seed")
|
19
|
+
|
20
|
+
@config.must_have_run(
|
21
|
+
"cd /a/current && bin/rake RAILS_ENV=production db:seed")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-fanfare
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
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-01-
|
12
|
+
date: 2012-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
16
|
-
requirement: &
|
16
|
+
requirement: &70156962133920 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - =
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.10.0.pre
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70156962133920
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: capistrano_colors
|
27
|
-
requirement: &
|
27
|
+
requirement: &70156962133340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.5'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70156962133340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sushi
|
38
|
-
requirement: &
|
38
|
+
requirement: &70156962132820 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.0.2
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70156962132820
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: minitest
|
49
|
-
requirement: &
|
49
|
+
requirement: &70156962132240 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.10.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70156962132240
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: minitest-capistrano
|
60
|
-
requirement: &
|
60
|
+
requirement: &70156962131740 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0.0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70156962131740
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: timecop
|
71
|
-
requirement: &
|
71
|
+
requirement: &70156962131180 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0.3'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70156962131180
|
80
80
|
description: Capistrano recipes (with full test suite) for fanfare application deployment
|
81
81
|
framework
|
82
82
|
email:
|
@@ -97,7 +97,9 @@ files:
|
|
97
97
|
- lib/capistrano/fanfare/bundler.rb
|
98
98
|
- lib/capistrano/fanfare/campfire.rb
|
99
99
|
- lib/capistrano/fanfare/colors.rb
|
100
|
+
- lib/capistrano/fanfare/console.rb
|
100
101
|
- lib/capistrano/fanfare/database_yaml.rb
|
102
|
+
- lib/capistrano/fanfare/db_seed.rb
|
101
103
|
- lib/capistrano/fanfare/defaults.rb
|
102
104
|
- lib/capistrano/fanfare/foreman.rb
|
103
105
|
- lib/capistrano/fanfare/foreman/strategy.rb
|
@@ -112,7 +114,9 @@ files:
|
|
112
114
|
- spec/bundler_spec.rb
|
113
115
|
- spec/campfire_spec.rb
|
114
116
|
- spec/colors_spec.rb
|
117
|
+
- spec/console_spec.rb
|
115
118
|
- spec/database_yaml_spec.rb
|
119
|
+
- spec/db_seed_spec.rb
|
116
120
|
- spec/defaults_spec.rb
|
117
121
|
- spec/fixtures/Procfile
|
118
122
|
- spec/fixtures/fanfare/bark.rb
|
@@ -138,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
138
142
|
version: '0'
|
139
143
|
segments:
|
140
144
|
- 0
|
141
|
-
hash:
|
145
|
+
hash: -2785244211495022277
|
142
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
147
|
none: false
|
144
148
|
requirements:
|
@@ -147,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
151
|
version: '0'
|
148
152
|
segments:
|
149
153
|
- 0
|
150
|
-
hash:
|
154
|
+
hash: -2785244211495022277
|
151
155
|
requirements: []
|
152
156
|
rubyforge_project:
|
153
157
|
rubygems_version: 1.8.10
|
@@ -160,7 +164,9 @@ test_files:
|
|
160
164
|
- spec/bundler_spec.rb
|
161
165
|
- spec/campfire_spec.rb
|
162
166
|
- spec/colors_spec.rb
|
167
|
+
- spec/console_spec.rb
|
163
168
|
- spec/database_yaml_spec.rb
|
169
|
+
- spec/db_seed_spec.rb
|
164
170
|
- spec/defaults_spec.rb
|
165
171
|
- spec/fixtures/Procfile
|
166
172
|
- spec/fixtures/fanfare/bark.rb
|