require 'debug' class Router attr_reader :routes def initialize() @routes = [] end def add_route(method, input, &block) routeHash = {method: method, resource: input, block: block} @routes << routeHash p "added successfully, @routes are: #{@routes}" end def match_route(request) #spec ["3" "bostongurka"] match = @routes.find {|route| (route[:method] == request.method) && (request.resource.match?(route[:resource]))} if match != nil print("\nMatch: ", match, "\n") returner = [match, 200] return returner else if request.resource.match?(@routes[0][:resource]) != true p "failed to find: #{request.resource} resource.\nExpected: #{String(@routes[0][:resource])} resource" elsif @routes[0][:method] != request.method p "failed to find #{request.method} method.\nExpected: #{@routes[0][:method]} method" else p "Failed to match, got no reason, just kinda didn't feel like it" end returner = [request, 404] return returner end end end