Sha256: 02d8e83941741a4703b842ea4cd4cc4c9fcf359d3c3772b77572f319822d69fe
Contents?: true
Size: 829 Bytes
Versions: 1
Compression:
Stored size: 829 Bytes
Contents
$:.unshift File.dirname(__FILE__) require 'rack_interface/route' class Usher module Interface class RackInterface RequestMethods = [:method, :host, :port, :scheme] Request = Struct.new(:path, *RequestMethods) def initialize @routes = Usher.new(:request_methods => RequestMethods) end def add(path, options = {}) @routes.add_route(path, options) end def reset! @routes.reset! end def call(env) response = @routes.recognize(Request.new(env['REQUEST_URI'], env['REQUEST_METHOD'].downcase, env['HTTP_HOST'], env['SERVER_PORT'].to_i, env['rack.url_scheme'])) env['usher.params'] = response.params.inject({}){|h,(k,v)| h[k]=v; h } response.path.route.params.first.call(env) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
joshbuddy-usher-0.3.4 | lib/usher/interface/rack_interface.rb |