Class | Rack::Directory
In: | lib/rack/directory.rb
Parent: | Object

Rack::Directory serves entries below the `root` given, according to the path info of the Rack request. If a directory is found, the file‘s contents will be presented in an html based index. If a file is found, the env will be passed to the specified `app`.

If `app` is not specified, a Rack::File of the same `root` will be used.

### Methods

_call call check_forbidden each entity_not_found filesize_format list_directory list_path new stat

### Constants

DIR_FILE | = | "<tr><td class='name'><a href='%s'>%s</a></td><td class='size'>%s</td><td class='type'>%s</td><td class='mtime'>%s</td></tr>"
DIR_PAGE | = | <<-PAGE <html><head> <title>%s</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type='text/css'> table { width:100%%; } .name { text-align:left; } .size, .mtime { text-align:right; } .type { width:11em; } .mtime { width:15em; } </style> </head><body> <h1>%s</h1> <hr /> <table> <tr> <th class='name'>Name</th> <th class='size'>Size</th> <th class='type'>Type</th> <th class='mtime'>Last Modified</th> </tr> %s </table> <hr /> </body></html> PAGE
F | = | ::File
FILESIZE_FORMAT | = | [ ['%.1fT', 1 << 40], ['%.1fG', 1 << 30], ['%.1fM', 1 << 20], ['%.1fK', 1 << 10], ] |  | Stolen from Ramaze

### Attributes

files | [R] |
path | [RW] |
root | [RW] |

### Public Class methods

new(root, app=nil)

### Public Instance methods

_call(env)
call(env)
check_forbidden()
each() {|l| ...}
entity_not_found()
filesize_format(int)
list_directory()
list_path()

TODO: add correct response if not readable, not sure if 404 is the best

          option

stat(node, max = 10)

[Validate]