Module: Newark::App

Defined in:
lib/newark/app.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

FOUR_O_FOUR =
[ 404, {}, [] ].freeze
HTTP_VERBS =
[ :delete, :get, :head, :options,
:patch, :post, :put, :trace ].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



47
48
49
# File 'lib/newark/app.rb', line 47

def request
  @request
end

#responseObject (readonly)

Returns the value of attribute response.



47
48
49
# File 'lib/newark/app.rb', line 47

def response
  @response
end

Class Method Details

.included(klass) ⇒ Object



10
11
12
13
# File 'lib/newark/app.rb', line 10

def self.included(klass)
  klass.instance_variable_set :@routes, {}
  klass.extend ClassMethods
end

Instance Method Details

#_call(env) ⇒ Object



53
54
55
56
57
58
# File 'lib/newark/app.rb', line 53

def _call(env)
  @env      = env
  @request  = Request.new(@env)
  @response = Response.new
  route
end

#call(env) ⇒ Object



49
50
51
# File 'lib/newark/app.rb', line 49

def call(env)
  dup._call(env)
end

#headersObject



60
61
62
# File 'lib/newark/app.rb', line 60

def headers
  response.headers
end

#paramsObject



64
65
66
# File 'lib/newark/app.rb', line 64

def params
  request.params
end

#routeObject



68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/newark/app.rb', line 68

def route
  route = match_route
  if route
    request.params.merge!(route.params)
    exec_before_hooks
    response.body = exec_handler(route.handler)
    exec_after_hooks
    response.finish
  else
    FOUR_O_FOUR
  end
end