module Roda::RodaPlugins::Public::RequestMethods

def public

Serve files from the public directory if the file exists and this is a GET request.
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