Nick5a1
Nick5a1

Reputation: 917

What goes in config.ru for a non-rails app on heroku?

I have a simple ruby (non-rails) app that uses resque, and won't start up without config.ru on heroku. When I add a config.ru file I get the following error when running rackup locally:

/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:133:in `to_app': missing run or map statement (RuntimeError)
from /Users/nickkarrasch/Dropbox/Coding/Ruby/smsnotifyv2/config.ru:in `<main>'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:199:in `app'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:141:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/bin/rackup:4:in `<top (required)>'
from /usr/local/Cellar/ruby/1.9.3-p194/bin/rackup:23:in `load'
from /usr/local/Cellar/ruby/1.9.3-p194/bin/rackup:23:in `<main>'

What do I need to put in config.ru?

Upvotes: 3

Views: 2204

Answers (1)

fmendez
fmendez

Reputation: 7338

The content of that file (config.ru), will depend on what you're actually trying to do and the framework you're using since is just used for configuring Rack applications, it tells the Rack::Builder what middleware should be used and in which order. These are some of the examples offered in the Heroku documentation for deploying rack applications.:

Sinatra:

require './hello'
run Sinatra::Application

Ramaze:

require ::File.expand_path('./../hello', __FILE__)
Ramaze.start(:file => __FILE__, :started => true)
run Ramaze

Camping

require './hello'
run Rack::Adapter::Camping.new(Hello)

Upvotes: 6

Related Questions