¿Qué es un archivo CGI en Ruby? ¿Cómo puedo crear un archivo .RB?

CGI: significa script de interfaz de puerta de enlace común
Es un protocolo simple para pasar una solicitud HTTP de un servidor al cliente y devolver la salida al navegador web.

Una secuencia de comandos CGI contiene los parámetros de la solicitud aprobada en el entorno (GET) o mediante $ stdin (POST), y todo lo que imprime en $ stdout se devuelve al cliente.

Un script CGI muy simple sería:

#! / usr / bin / ruby
pone “HTTP / 1.0 200 OK”
pone “Tipo de contenido: texto / html \ n \ n”
pone ” Esta es una prueba ”

Dónde,
La primera línea es la versión HTTP y el código de estado de éxito (200).
La segunda línea es el tipo de contenido.
La tercera línea es el contenido (datos).

Explicacion:
Si llama a este script test.cgi y lo cargó a un proveedor de alojamiento web basado en Unix con los permisos correctos, podría usarlo como un script CGI.

Por ejemplo, si tiene el sitio web http://www.example.com/ alojado con un proveedor de alojamiento web Linux y carga test.cgi en el directorio principal y le da permisos de ejecución, visite http: // www. example.com/test.cgi debería devolver una página HTML que diga Esta es una prueba .

Aquí, cuando se solicita test.cgi desde un navegador web, el servidor web busca test.cgi en el sitio web y luego lo ejecuta utilizando el intérprete Ruby. El script Ruby devuelve un encabezado HTTP básico y luego devuelve un documento HTML básico.

¿Cómo se hace un archivo .rb? Aquí estoy asumiendo que te refieres a un script cgi con extensión .rb (o un script ruby ​​cgi)

Ruby viene con una biblioteca especial llamada cgi que permite interacciones más sofisticadas que aquellas con el script CGI anterior.

#! / usr / bin / ruby
requiere ‘cgi’
cgi = CGI.new
pone cgi.header
pone ” Esta es una prueba ”

Crear formularios y HTML:
CGI contiene una gran cantidad de métodos utilizados para crear HTML. Encontrará un método por etiqueta. Para habilitar estos métodos, debe crear un objeto CGI llamando a CGI.new.

Para facilitar el anidamiento de etiquetas, estos métodos toman su contenido como bloques de código. Los bloques de código deben devolver una Cadena , que se utilizará como contenido para la etiqueta. Por ejemplo:

#! / usr / bin / ruby
requiere “cgi”
cgi = CGI.new (“html4”)
cgi.out {
cgi.html {
cgi.head {“\ n” +
cgi.title {“Esto es una prueba”}} +
cgi.body {“\ n” + c
gi.form {“\ n” +
cgi.hr +
cgi.h1 {“Un formulario:”} + “\ n” +
cgi.textarea (“get_text”) + “\ n” +
cgi.br +
cgi.submit}}}}

NOTA: El método de formulario de la clase CGI puede aceptar un parámetro de método, que establecerá el método HTTP (GET, POST, etc.) que se utilizará en la presentación del formulario. El valor predeterminado, utilizado en este ejemplo, es POST.
Esto producirá el siguiente resultado:

Tipo de contenido: texto / html
Longitud del contenido: 302

Esto es una prueba


Un formulario:



Hay muchas más características proporcionadas por la clase CGI de Ruby. Míralo con más detalle aquí: Aplicaciones web de Ruby – Programación CGI