Polished up the formatting and code for the output and separated out the colorizing...
[maraby.git] / mrouter / rackapp.rb
blobe94c5e51b4e64ebf992d61fb3f1733bdea28ca85
1 #!/usr/bin/env ruby -wKU
3 require 'rubygems'
4 require 'rack'
5 require 'mrouter'
7 class Rap
8   include MRouterHelper
9   
10   route do |r|
11     r.match('/').to(:action => 'foo', :random => 'arbitrary')
12     r.match('/hello/:name').to(:action => 'greeter')
13   end
14   
15   def call(env)
16     @env = env
17     @route = env['merb.route'].dup
18     send(@route.delete(:action).to_sym, @route)
19   end
20   
21   def foo(params)
22     [200, {'Content-Type'=>'text/plain'}, @route.inspect]
23   end
24   
25   def greeter(params)
26     [200, {'Content-Type'=>'text/plain'}, "Hello #{params[:name]}"]
27   end
28   
29   def not_found(params)
30     [404, {'Content-Type'=>'text/plain'}, 'Not Found']
31   end
32   
33 end
35 Rack::Handler::Mongrel.run Rack::MRouter.new(Rap.new), :Port => 4400 if $0 == __FILE__