RakeUp
¶ ↑
RakeUp
provides a set of turn-key Rake tasks for running a local Rack based server application. By configuring a single block in your Rakefile, you will have access to a rich set of tasks for start, stopping, and monitoring your server. These tasks are essentially thin wrappers around the rackup
command and are useful for running lightweight applications that are used for local development and testing.
This project was developed for use with the test server of the RestKit project on iOS. RestKit runs numerous tests over HTTP against a local server and RakeUp
provides the management of that server instance.
Example Rakefile¶ ↑
require 'rubygems' require 'bundler/setup' require 'rakeup' RakeUp::ServerTask.new do |t| t.port = 8558 t.pid_file = 'tmp/server.pid' t.rackup_file = 'server.ru' t.server = :thin end
After configuring the task, you can run rake -T server
to see your new server management tasks:
rake server # Run the server in the foreground rake server:abort_unless_running # Abort the task chain unless the server is running rake server:autostart # Starts the server if there is not already an instance running rake server:autostop # Stops the server if executed via autostart rake server:restart # Restart the server daemon rake server:start # Start the server daemon rake server:status # Check the status of the server daemon rake server:stop # Stop the server daemon
If you wish to synthesize your tasks under a name other than ‘server’ you can provide a string when initializing the server task: RakeUp::ServerTask.new("other_name")
.
Installation¶ ↑
To add RakeUp
to your application, edit your Gemfile to import the RakeUp
gem:
gem 'rakeup', '~> 1.0'
And then edit your Rakefile to import the RakeUp
library and configure your server tasks:
require 'rubygems' require 'bundler/setup' require 'rakeup' RakeUp::ServerTask.new do |t| t.port = 8558 t.pid_file = 'Tests/Server/server.pid' t.rackup_file = 'Tests/Server/server.ru' t.server = :thin # Or puma, mongrel, etc. end
Supported Web Servers¶ ↑
Any web server that is imported by your Gemfile and has a Rack handler available is available for execute. Commonly used servers are thin, mongrel, webrick, and puma. See rackup --help
for more examples.
Customizing the Tasks¶ ↑
At its core, RakeUp
is simply a convenience wrapper around rackup commandline invocations. You can customize the rake tasks by overriding the run, start, stop, and restart commands when configuring the server:
RakeUp::ServerTask.new do |t| t.port = 8558 t.pid_file = 'Tests/Server/server.pid' t.rackup_file = 'Tests/Server/server.ru' t.log_file = 'Tests/Server/server.log' # Run Thin directly t.run_command = "thin -r #{t.rackup_file} -P #{t.pid_file} -p #{t.port} start" t.start_command = "thin -r #{t.rackup_file} -P #{t.pid_file} -p #{t.port} start -D" t.stop_command = "thin -r #{t.rackup_file} -P #{t.pid_file} -p #{t.port} stop" t.restart_command = "thin -r #{t.rackup_file} -P #{t.pid_file} -p #{t.port} restart" end
Contact¶ ↑
Blake Watters
-
blakewatters@gmail.com
License¶ ↑
RakeUp
is available under the Apache 2 License. See the LICENSE file for more info.