Class: PHPServer::HTTPServer

Inherits:
HTTPServer
  • Object
show all
Defined in:
lib/php-server.rb

Instance Method Summary collapse

Constructor Details

#initialize(*arg) ⇒ HTTPServer

Returns a new instance of HTTPServer.



8
9
10
11
12
# File 'lib/php-server.rb', line 8

def initialize *arg
  @rewrite_rules = []
  super
  mount '/', WEBrick::HTTPServlet::FileHandler, config[:DocumentRoot], :FancyIndexing => true, :HandlerTable => { 'php' => PHPServer::PHPHandler }
end

Instance Method Details

#rewrite(pattern, subst) ⇒ Object



14
15
16
17
# File 'lib/php-server.rb', line 14

def rewrite pattern, subst
  @logger.info "rewrite rule #{pattern.inspect} -> #{subst}."
  @rewrite_rules << [pattern, subst]
end

#service(req, res) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/php-server.rb', line 19

def service req, res
  path = req.path
  @rewrite_rules.each do |pattern, subst|
    if pattern =~ path
      new_path = path.gsub pattern, subst
      @logger.info "rewrote url from #{path} to #{new_path}"
      req.instance_variable_set "@path", new_path
      break
    end
  end
  super req, res
end