module Pretzel::Routing::Evaluation
Public Class Methods
included(parent)
click to toggle source
# File lib/pretzel/routing/eval.rb, line 5 def self.included(parent) parent.extend ClassMethods end
Private Instance Methods
evaluate_route()
click to toggle source
# File lib/pretzel/routing/eval.rb, line 28 def evaluate_route catch(:halt) do method = request.request_method.downcase.to_sym self.class.routes[method].each do |route, block| if match = request.path_info.match(route[0]) if (captures = match.captures) && !captures.empty? url_params = Hash[*route[1].zip(captures).flatten] @parameters = url_params.merge(parameters) end self.class.filters[:before].each { |filter| instance_exec(&filter) } if self.class.filters[:before] response.write instance_eval(&block) self.class.filters[:after].each { |filter| instance_exec(&filter) } if self.class.filters[:after] return end end halt 404 end end