module Newark::App
Constants
- FOUR_O_FOUR
- HTTP_VERBS
Attributes
request[R]
response[R]
Public Class Methods
included(klass)
click to toggle source
# File lib/newark/app.rb, line 10 def self.included(klass) klass.instance_variable_set :@routes, {} klass.extend ClassMethods end
new(*)
click to toggle source
Calls superclass method
# File lib/newark/app.rb, line 49 def initialize(*) super @before_hooks = self.class.instance_variable_get(:@before_hooks) @after_hooks = self.class.instance_variable_get(:@after_hooks) @routes = self.class.instance_variable_get(:@routes) end
Public Instance Methods
_call(env)
click to toggle source
# File lib/newark/app.rb, line 60 def _call(env) @env = env @request = Request.new(@env) @response = Response.new route end
call(env)
click to toggle source
# File lib/newark/app.rb, line 56 def call(env) dup._call(env) end
headers()
click to toggle source
# File lib/newark/app.rb, line 67 def headers response.headers end
params()
click to toggle source
# File lib/newark/app.rb, line 71 def params request.params end
route()
click to toggle source
# File lib/newark/app.rb, line 75 def route route = match_route if route if exec_before_hooks response.body = exec(route.handler) exec_after_hooks end status, headers, body = response.finish [status, headers, body.respond_to?(:body) ? body.body : body] else FOUR_O_FOUR end end
Private Instance Methods
exec(action)
click to toggle source
# File lib/newark/app.rb, line 99 def exec(action) if action.respond_to? :to_sym send(action) else instance_exec(&action) end end
exec_after_hooks()
click to toggle source
# File lib/newark/app.rb, line 115 def exec_after_hooks exec_hooks @after_hooks end
exec_before_hooks()
click to toggle source
# File lib/newark/app.rb, line 111 def exec_before_hooks exec_hooks @before_hooks end
exec_handler(handler)
click to toggle source
# File lib/newark/app.rb, line 107 def exec_handler(handler) exec(handler) end
exec_hooks(hooks)
click to toggle source
# File lib/newark/app.rb, line 119 def exec_hooks(hooks) return true if hooks.nil? hooks.each do |hook| return false if exec(hook) == false end end
match_route()
click to toggle source
# File lib/newark/app.rb, line 91 def match_route Router.new(routes, request).route end
routes()
click to toggle source
# File lib/newark/app.rb, line 95 def routes @routes[@request.request_method] end