Class: Webmachine::Adapters::Ring::Handler

Inherits:
Object
  • Object
show all
Includes:
Java::ClojureLang::IFn
Defined in:
lib/webmachine/adapters/ring.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dispatcher) ⇒ Handler

Returns a new instance of Handler.



54
55
56
# File 'lib/webmachine/adapters/ring.rb', line 54

def initialize(dispatcher)
  @dispatcher = dispatcher
end

Instance Attribute Details

#dispatcherObject (readonly)

Returns the value of attribute dispatcher.



52
53
54
# File 'lib/webmachine/adapters/ring.rb', line 52

def dispatcher
  @dispatcher
end

Instance Method Details

#invoke(request) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/webmachine/adapters/ring.rb', line 58

def invoke(request)
  ring_request = Ring::RingRequest.new(request)

  request = Webmachine::Request.new(ring_request.method,
                                    ring_request.url,
                                    ring_request.headers,
                                    ring_request.body)

  response = Webmachine::Response.new

  dispatcher.dispatch(request, response)

  headers = Java::JavaUtil::HashMap.new(response.headers)

  Ring::RingResponse.create(response.code, headers, response.body)
end