Métodos CGI en Ruby
La siguiente es la lista de métodos de la clase CGI:
| No. | Descripción del método |
|---|---|
| 1 | CGI::new([ level="query"]) Crea un objeto CGI. query puede ser uno de los siguientes valores:
|
| 2 | CGI::escape( str) Escapa cadenas usando codificación URL |
| 3 | CGI::unescape( str) Decodifica cadenas codificadas mediante escape(). |
| 4 | CGI::escapeHTML( str) Codifica caracteres especiales HTML, incluyendo: & < >. |
| 5 | CGI::unescapeHTML( str) Decodifica caracteres especiales HTML, incluyendo: & < >. |
| 6 | CGI::escapeElement( str[, element...]) Codifica caracteres especiales HTML en el elemento HTML especificado. |
| 7 | CGI::unescapeElement( str, element[, element...]) Decodifica caracteres especiales HTML en el elemento HTML especificado. |
| 8 | CGI::parse( query) Analiza la cadena de consulta y devuelve un hash que contiene pares clave => valor. |
| 9 | CGI::pretty( string[, leader=" "]) Devuelve HTML con formato ordenado. Si se especificaleader, se escribirá al inicio de cada línea.leaderEl valor predeterminado son dos espacios. |
| 10 | CGI::rfc1123_date( time) Formatea el tiempo según RFC-1123 (por ejemplo, Tue, 2 Jun 2008 00:00:00 GMT). |
Métodos de instancia de CGI
En el siguiente ejemplo, asignamos el objeto CGI::new a la variable c. La lista de métodos es la siguiente:
| No. | Descripción del método |
|---|---|
| 1 | c[ name] Devuelve un array que contiene el valor correspondiente al campo llamadonameel valor. |
| 2 | c.checkbox( name[, value[, check=false]]) c.checkbox( options) Devuelve una cadena HTML para definir un campo checkbox. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 3 | c.checkbox_group( name, value...) c.checkbox_group( options) >Devuelve una cadena HTML para definir un grupo de checkboxes. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 4 | c.file_field( name[, size=20[, max]]) c.file_field( options) Devuelve una cadena HTML que define un campo file. |
| 5 | c.form([ method="post"[, url]]) { ...} c.form( options) Devuelve una cadena HTML que define un formulario form. Si se especifica un bloque de código, se generará como contenido del formulario. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 6 | c.cookies Devuelve un objeto CGI::Cookie que contiene los pares clave-valor de la cookie. |
| 7 | c.header([ header]) Devuelve la información de la cabecera CGI. Si el parámetro header es un hash, sus pares clave-valor se utilizan para crear la cabecera. |
| 8 | c.hidden( name[, value]) c.hidden( options) Devuelve una cadena HTML que define un campo oculto. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 9 | c.image_button( url[, name[, alt]]) c.image_button( options) Devuelve una cadena HTML que define un botón de imagen. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 10 | c.keys Devuelve un array que contiene los nombres de los campos del formulario. |
| 11 | c.key?( name) c.has_key?( name) c.include?( name) Devuelve true si el formulario contiene el campo especificado. |
| 12 | c.multipart_form([ url[, encode]]) { ...} c.multipart_form( options) { ...} Devuelve una cadena HTML que define un formulario multimedia (multipart). Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 13 | c.out([ header]) { ...} Genera HTML y lo envía. Utiliza la cadena generada por la salida del bloque para crear el cuerpo de la página. |
| 14 | c.params Devuelve un hash que contiene los nombres y valores de los campos del formulario. |
| 15 | c.params= hash Establece el nombre de campo y el valor utilizados. |
| 16 | c.password_field( name[, value[, size=40[, max]]]) c.password_field( options) Devuelve una cadena HTML que define un campo password. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 17 | c.popup_menu( name, value...) c.popup_menu( options) c.scrolling_list( name, value...) c.scrolling_list( options) Devuelve una cadena HTML que define un menú emergente. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 18 | c.radio_button( name[, value[, checked=false]]) c.radio_button( options) Devuelve una cadena HTML que define un campo radio. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 19 | c.radio_group( name, value...) c.radio_group( options) Devuelve una cadena HTML que define un grupo de botones radio. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 20 | c.reset( name[, value]) c.reset( options) Devuelve una cadena HTML que define un botón reset. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 21 | c.text_field( name[, value[, size=40[, max]]]) c.text_field( options) Devuelve una cadena HTML que define un campo text. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
| 22 | c.textarea( name[, cols=70[, rows=10]]) { ...} c.textarea( options) { ...} Devuelve una cadena HTML que define un campo textarea. Si se especifica un bloque, la cadena de salida del bloque se utilizará como contenido del textarea. Los atributos de la etiqueta pueden pasarse como argumento mediante un hash. |
Métodos de generación de HTML
Puedes usar los nombres de etiquetas HTML correspondientes en una instancia de CGI para crear etiquetas HTML. Ejemplo:
Ejemplo
#!/usr/bin/ruby
require "cgi"
cgi = CGI.new("html4")
cgi.out{
cgi.html{
cgi.head{ "\n"+cgi.title{"This Is a Test"} } +
cgi.body{ "\n"+
cgi.form{"\n"+
cgi.hr +
cgi.h1 { "A Form: " } + "\n"+
cgi.textarea("get_text") +"\n"+
cgi.br +
cgi.submit
}
}
}
}
Atributos del objeto CGI
Puedes usar los siguientes atributos en la instancia de CGI:
| Atributo | Valor de retorno |
|---|---|
| accept | Tipos MIME aceptables |
| accept_charset | Conjuntos de caracteres aceptables |
| accept_encoding | Codificaciones aceptables |
| accept_language | Idiomas aceptables |
| auth_type | Tipos aceptables |
| raw_cookie | Datos de cookie (cadena original) |
| content_length | Longitud del contenido (Content length) |
| content_type | Tipo de contenido (Content type) |
| From | Dirección de correo electrónico del cliente |
| gateway_interface | Versión de CGI |
| path_info | Ruta |
| path_translated | Ruta traducida |
| Query_string | Cadena de consulta |
| referer | URL visitada anteriormente |
| remote_addr | Dirección del host del cliente (IP) |
| remote_host | Nombre del host del cliente |
| remote_ident | Nombre del cliente |
| remote_user | Usuario autenticado |
| request_method | Método de solicitud (GET, POST, etc.) |
| script_name | Nombre del parámetro |
| server_name | Nombre del servidor |
| server_port | Puerto del servidor |
| server_protocol | Protocolo del servidor |
| server_software | Software del servidor |
| user_agent | Agente de usuario (User agent) |