Class: WEBrick::HTTPServlet::ERBHandler (Ruby 2.7.3)
Description: Class : WEBrick::HTTPServlet::ERBHandler - Ruby 2.7.3

### Home Classes Methods

### In Files

- webrick/httpservlet/erbhandler.rb

### Parent

WEBrick::HTTPServlet::AbstractServlet

### Methods

- ::new
- #do_GET
- #do_POST

### Class/Module Index

Quicksearch

- Errno
- Errno::ECONNABORTED
- Errno::ECONNRESET
- Errno::EPROTO
- Object
- WEBrick
- WEBrick::AccessLog
- WEBrick::AccessLog::AccessLogError
- WEBrick::BasicLog
- WEBrick::CGI
- WEBrick::Config
- WEBrick::Cookie
- WEBrick::Daemon
- WEBrick::GenericServer
- WEBrick::HTMLUtils
- WEBrick::HTTPAuth
- WEBrick::HTTPAuth::Authenticator
- WEBrick::HTTPAuth::BasicAuth
- WEBrick::HTTPAuth::DigestAuth
- WEBrick::HTTPAuth::Htdigest
- WEBrick::HTTPAuth::Htgroup
- WEBrick::HTTPAuth::Htpasswd
- WEBrick::HTTPAuth::ProxyAuthenticator
- WEBrick::HTTPAuth::ProxyBasicAuth
- WEBrick::HTTPAuth::ProxyDigestAuth
- WEBrick::HTTPAuth::UserDB
- WEBrick::HTTPProxyServer
- WEBrick::HTTPRequest
- WEBrick::HTTPResponse
- WEBrick::HTTPResponse::InvalidHeader
- WEBrick::HTTPServer
- WEBrick::HTTPServerError
- WEBrick::HTTPServlet
- WEBrick::HTTPServlet::AbstractServlet
- WEBrick::HTTPServlet::CGIHandler
- WEBrick::HTTPServlet::DefaultFileHandler
- WEBrick::HTTPServlet::ERBHandler
- WEBrick::HTTPServlet::FileHandler
- WEBrick::HTTPServlet::HTTPServletError
- WEBrick::HTTPServlet::ProcHandler
- WEBrick::HTTPStatus
- WEBrick::HTTPStatus::ClientError
- WEBrick::HTTPStatus::EOFError
- WEBrick::HTTPStatus::Error
- WEBrick::HTTPStatus::Info
- WEBrick::HTTPStatus::Redirect
- WEBrick::HTTPStatus::ServerError
- WEBrick::HTTPStatus::Status
- WEBrick::HTTPStatus::Success
- WEBrick::HTTPUtils
- WEBrick::HTTPUtils::FormData
- WEBrick::HTTPVersion
- WEBrick::Log
- WEBrick::SNIRequest
- WEBrick::ServerError
- WEBrick::SimpleServer
- WEBrick::Utils
- WEBrick::Utils::TimeoutHandler

No matching classes.

# WEBrick::HTTPServlet::ERBHandler

`ERBHandler` evaluates an ERB file and returns the result. This handler is automatically used if there are .rhtml files in a directory served by the `FileHandler`.

`ERBHandler` supports GET and POST methods.

The ERB file is evaluated with the local variables `servlet_request` and `servlet_response` which are a `WEBrick::HTTPRequest` and `WEBrick::HTTPResponse` respectively.

Example .rhtml file:

    Request to <%= servlet_request.request_uri %>

    Query params <%= servlet_request.query.inspect %>

### Public Class Methods

new(server, name) click to toggle source

Creates a new `ERBHandler` on `server` that will evaluate and serve the ERB file `name`

                   # File webrick/httpservlet/erbhandler.rb, line 42
    def initialize(server, name)
      super(server, name)
      @script_filename = name
    end

### Public Instance Methods

do_GET(req, res) click to toggle source

Handles GET requests

                   # File webrick/httpservlet/erbhandler.rb, line 50
    def do_GET(req, res)
      unless defined?(ERB)
        @logger.warn "#{self.class}: ERB not defined."
        raise HTTPStatus::Forbidden, "ERBHandler cannot work."
      end
      begin
        data = File.open(@script_filename, &:read)
        res.body = evaluate(ERB.new(data), req, res)
        res['content-type'] ||=
          HTTPUtils::mime_type(@script_filename, @config[:MimeTypes])
      rescue StandardError
        raise
      rescue Exception => ex
        @logger.error(ex)
        raise HTTPStatus::InternalServerError, ex.message
      end
    end

Also aliased as: do_POST
do_POST(req, res) click to toggle source

Handles POST requests

Alias for: do_GET