module Roda::RodaPlugins::Public::RequestMethods
def public
def public if is_get? path = PARSER.unescape(remaining_path) return if path.include?(NULL_BYTE) roda_opts = roda_class.opts server = roda_opts[:public_server] path = ::File.join(server.root, *public_path_segments(path)) if roda_opts[:public_gzip] && env['HTTP_ACCEPT_ENCODING'] =~ /\bgzip\b/ gzip_path = path + '.gz' if public_file_readable?(gzip_path) res = public_serve(server, gzip_path) headers = res[1] if mime_type = ::Rack::Mime.mime_type(::File.extname(path), 'text/plain') headers['Content-Type'] = mime_type end headers['Content-Encoding'] = 'gzip' halt res end end if public_file_readable?(path) halt public_serve(server, path) end end end