class QuickNap::Base
Attributes
request[R]
routes[R]
Public Class Methods
new()
click to toggle source
# File lib/quicknap.rb, line 5 def initialize @routes = {} @request = {} end
Public Instance Methods
call(env)
click to toggle source
# File lib/quicknap.rb, line 32 def call(env) @request = Rack::Request.new(env) http_verb = @request.request_method requested_route = @request.path_info handler = @routes.fetch(http_verb, {}).fetch(requested_route, nil) if handler request_result = instance_eval(&handler) (request_result.class == String) ? [200, {}, [request_result]] : request_result else [404, {}, ["'#{http_verb}' to '#{requested_route}' : Undefined route"]] end end
delete(route, &callback)
click to toggle source
# File lib/quicknap.rb, line 28 def delete(route, &callback) route("DELETE", route, &callback) end
get(route, &callback)
click to toggle source
# File lib/quicknap.rb, line 12 def get(route, &callback) route("GET", route, &callback) end
listen_at(port_number)
click to toggle source
# File lib/quicknap.rb, line 48 def listen_at(port_number) Rack::Handler::WEBrick.run QuickNap::QuickNapApp, Port: port_number end
patch(route, &callback)
click to toggle source
# File lib/quicknap.rb, line 20 def patch(route, &callback) route("PATCH", route, &callback) end
post(route, &callback)
click to toggle source
# File lib/quicknap.rb, line 16 def post(route, &callback) route("POST", route, &callback) end
put(route, &callback)
click to toggle source
# File lib/quicknap.rb, line 24 def put(route, &callback) route("PUT", route, &callback) end
Private Instance Methods
params()
click to toggle source
# File lib/quicknap.rb, line 59 def params @request.params end
post_body()
click to toggle source
# File lib/quicknap.rb, line 63 def post_body @request.body.read end
route(http_verb, route, &callback)
click to toggle source
# File lib/quicknap.rb, line 54 def route(http_verb, route, &callback) @routes[http_verb] ||= {} @routes[http_verb][route] = callback end