Guard::Passenger is the useful development server solution. The guard automatically starts Passenger and intelligently restarts the server when needed.
Please be sure to have guard installed before continue.
Install the gem:
gem install guard-passenger
Add it to your Gemfile (inside test group):
Add guard definition to your Guardfile by running this command:
guard init passenger
Please read guard usage doc
Passenger guard can be really be adapted to all kind of rack project with Passenger. Please read guard doc for more info about Guardfile DSL.
Standard rails app
guard 'passenger' do watch(%|lib/.*\.rb|) watch(%|config/.*\.rb|) end
Passenger standalone is used as default. You can pass options to the guard to disable or configure it. Guard::Passenger will start Passenger on startup and take it down on exit. By default Passenger standalone is activated and port is set to 3000.
You can choose to ping localhost:port(/path) after Passenger has been restarted, it's done asynchronously so it won't block other guards execution. If you set :ping to true, it will ping localhost:3000/, it you set :ping to a String, it will append the path to localhost:3000/ for the ping. If the ping responds with a non-5XX response, Passenger is considered as running, otherwise, there is probably a problem with Passenger.
Guard::Passenger accepts some options for configuration.
# :standalone boolean run Passenger standalone (default: true) # :cli string options to pass to passenger command (default: '--daemonize') # :notification boolean Notifications enabled (default: true) # :ping boolean or string ping localhost after Passenger restart (default: false) # :sudo boolean or string start Passenger under sudo (default: false) guard 'passenger', :standalone => false, :cli => '--daemonize --port 3001 --address my_app.local --environment production', :ping => '/foo', :sudo => 'rvmsudo' do end
Pull requests are very welcome! Make sure your patches are well tested. Please create a topic branch for every separate change you make.