module WAB::Impl::WEBrick::Sender

The Sender module adds support for sending results and errors.

Public Instance Methods

send_error(e, res) click to toggle source

Sends an error from a rescued call.

# File lib/wab/impl/webrick/sender.rb, line 22
def send_error(e, res)
  res.status = 500
  res['Content-Type'] = 'application/json'
  body = { code: -1, error: "#{e.class}: #{e.message}" }
  body[:backtrace] = e.backtrace
  res.body = @shell.data(body).json(@shell.indent)
  @shell.logger.warn(Impl.format_error(e))
end
send_result(result, res, path, query) click to toggle source

Sends the results from a controller request.

# File lib/wab/impl/webrick/sender.rb, line 12
def send_result(result, res, path, query)
  result = @shell.data(result) unless result.is_a?(WAB::Data)
  response_body = result.json(@shell.indent)
  res.status = 200
  res['Content-Type'] = 'application/json'
  @shell.logger.debug("reply to #{path.join('/')}#{query}: #{response_body}") if @shell.logger.debug?
  res.body = response_body
end