Class WEBrick::HTTPServlet::ERBHandler
In: lib/webrick/httpservlet/erbhandler.rb
Parent: AbstractServlet

Methods

do_GET   do_POST   evaluate   new  

Public Class methods

[Source]

    # File lib/webrick/httpservlet/erbhandler.rb, line 19
19:       def initialize(server, name)
20:         super
21:         @script_filename = name
22:       end

Public Instance methods

[Source]

    # File lib/webrick/httpservlet/erbhandler.rb, line 24
24:       def do_GET(req, res)
25:         unless defined?(ERB)
26:           @logger.warn "#{self.class}: ERB not defined."
27:           raise HTTPStatus::Forbidden, "ERBHandler cannot work."
28:         end
29:         begin
30:           data = open(@script_filename){|io| io.read }
31:           res.body = evaluate(ERB.new(data), req, res)
32:           res['content-type'] =
33:             HTTPUtils::mime_type(@script_filename, @config[:MimeTypes])
34:         rescue StandardError => ex
35:           raise
36:         rescue Exception => ex
37:           @logger.error(ex)
38:           raise HTTPStatus::InternalServerError, ex.message
39:         end
40:       end
do_POST(req, res)

Alias for do_GET

Private Instance methods

[Source]

    # File lib/webrick/httpservlet/erbhandler.rb, line 45
45:       def evaluate(erb, servlet_request, servlet_response)
46:         Module.new.module_eval{
47:           meta_vars = servlet_request.meta_vars
48:           query = servlet_request.query
49:           erb.result(binding)
50:         }
51:       end

[Validate]