nothing more than a rack request with some additional methods and overridingwhere the erros get written
Initialize the request with the environment and the root directory of therequest
# File lib/heel/request.rb, line 16 def initialize(env, root_dir) super(env) @root_dir = root_dir end
# File lib/heel/request.rb, line 35 def base_uri @base_uri ||= ::Rack::Utils.unescape(path_info) end
# File lib/heel/request.rb, line 52 def for_directory? stat.directory? end
# File lib/heel/request.rb, line 56 def for_file? stat.file? end
a request must be for something that below the root directory
# File lib/heel/request.rb, line 42 def forbidden? request_path.index(root_dir) != 0 end
a request is only good for something that actually exists and is readable
# File lib/heel/request.rb, line 48 def found? File.exist?(request_path) and (stat.directory? or stat.file?) and stat.readable? end
was the highlighting parameter true or false?
# File lib/heel/request.rb, line 62 def highlighting? return !(%w[ off false ].include? self.GET['highlighting'].to_s.downcase) end
normalize the request path to the full file path of the request from the+root_dir+
# File lib/heel/request.rb, line 30 def request_path @request_path ||= ::File.expand_path(::File.join(root_dir, ::Rack::Utils.unescape(path_info))) end
a stat of the file mentioned in the request path
# File lib/heel/request.rb, line 23 def stat @stat ||= ::File.stat(request_path) end