class Ground::BaseRack
Attributes
env[R]
request[R]
Public Instance Methods
call(env)
click to toggle source
# File lib/ground/rack/base_rack.rb, line 7 def call(env) start_time = Time.now set_request Rack::Request.new(env) route, state = Ground::Locate(verb: request_method, path: path_info) return non_exist_route if state.nil? params = get_params route response = state << {request: request, params: params} time = Time.now - start_time Ground::Log({ time: time, request_method: request_method, path_info: request.env['REQUEST_PATH'], state: state, response: response, params: params }) response end
Private Instance Methods
get_params(route)
click to toggle source
# File lib/ground/rack/base_rack.rb, line 43 def get_params(route) p = {} path_segs = request.path_info.split('/') route.split('/').each_with_index {|route_seg, index| p[route_seg.sub(':', '')] = path_segs[index] if route_seg =~ /^:\w+/ } HashWithDoubleAccess p.merge(request.params) end
non_exist_route()
click to toggle source
# File lib/ground/rack/base_rack.rb, line 52 def non_exist_route Rack::Response.new(["Non Exist Route: #{request_method} #{path_info}"], 500) end
path_info()
click to toggle source
# File lib/ground/rack/base_rack.rb, line 39 def path_info request.path_info end
request_method()
click to toggle source
# File lib/ground/rack/base_rack.rb, line 35 def request_method request.request_method end
set_request(request)
click to toggle source
# File lib/ground/rack/base_rack.rb, line 31 def set_request request @request = request end