Ruby CGI Methods
Below is a list of methods for the CGI class:
| No. | Method Description |
|---|---|
| 1 | CGI::new([ level="query"]) <br>Creates a CGI object. query can be one of the following values: query: No HTML output generated<br>html3: HTML3.2<br>html4: HTML4.0 Strict<br>html4Tr: HTML4.0 Transitional<br>html4Fr: HTML4.0 Frameset |
| 2 | CGI::escape( str) <br>Escapes a string using URL encoding |
| 3 | CGI::unescape( str) <br>Decodes a string encoded with escape() |
| 4 | CGI::escapeHTML( str) <br>Encodes HTML special characters, including: & < > |
| 5 | CGI::unescapeHTML( str) <br>Decodes HTML special characters, including: & < > |
| 6 | CGI::escapeElement( str[, element...]) <br>Encodes HTML special characters within specified HTML elements |
| 7 | CGI::unescapeElement( str, element[, element...]) <br>Decodes HTML special characters within specified HTML elements |
| 8 | CGI::parse( query) <br>Parses a query string and returns a hash of key=>value pairs |
| 9 | CGI::pretty( string[, leader=" "]) <br>Returns neatly formatted HTML. If leader is specified, it will be written at the beginning of each line. Default leader is two spaces. |
| 10 | CGI::rfc1123_date( time) <br>Formats the time according to RFC-1123 (e.g., Tue, 2 Jun 2008 00:00:00 GMT) |
CGI Instantiation Methods
In the following examples, we assign the object created by CGI::new to the variable c. The methods are listed below:
| No. | Method Description |
|---|---|
| 1 | c[ name] <br>Returns an array containing the values for the field named name |
| 2 | c.checkbox( name[, value[, check=false]])<br>c.checkbox( options) <br>Returns an HTML string to define a checkbox field. Tag attributes can be passed as a hash. |
| 3 | c.checkbox_group( name, value...)<br>c.checkbox_group( options) <br>Returns an HTML string to define a checkbox group. Tag attributes can be passed as a hash. |
| 4 | c.file_field( name[, size=20[, max]])<br>c.file_field( options) <br>Returns an HTML string to define a file field. |
| 5 | c.form([ method="post"[, url]]) { ...}<br>c.form( options) <br>Returns an HTML string to define a form. If a block is specified, it will be output as the form content. Tag attributes can be passed as a hash. |
| 6 | c.cookies <br>Returns a CGI::Cookie object containing key-value pairs from cookies |
| 7 | c.header([ header]) <br>Returns CGI header information. If header is a hash, its key-value pairs are used to create the header. |
| 8 | c.hidden( name[, value])<br>c.hidden( options) <br>Returns an HTML string to define a hidden field. Tag attributes can be passed as a hash. |
| 9 | c.image_button( url[, name[, alt]])<br>c.image_button( options) <br>Returns an HTML string to define an image button. Tag attributes can be passed as a hash. |
| 10 | c.keys <br>Returns an array containing the field names of the form |
| 11 | c.key?( name)<br>c.has_key?( name)<br>c.include?( name) <br>Returns true if the form includes the specified field name |
| 12 | c.multipart_form([ url[, encode]]) { ...}<br>c.multipart_form( options) { ...} <br>Returns an HTML string to define a multipart form. Tag attributes can be passed as a hash. |
| 13 | c.out([ header]) { ...} <br>Generates and outputs HTML. Uses the output from the block to create the page body. |
| 14 | c.params <br>Returns a hash containing field names and values from the form |
| 15 | c.params= hash <br>Sets field names and values |
| 16 | c.password_field( name[, value[, size=40[, max]]])<br>c.password_field( options) <br>Returns an HTML string to define a password field. Tag attributes can be passed as a hash. |
| 17 | c.popup_menu( name, value...)<br>c.popup_menu( options)<br>c.scrolling_list( name, value...)<br>c.scrolling_list( options) <br>Returns an HTML string to define a popup menu. Tag attributes can be passed as a hash. |
| 18 | c.radio_button( name[, value[, checked=false]])<br>c.radio_button( options) <br>Returns an HTML string to define a radio button. Tag attributes can be passed as a hash. |
| 19 | c.radio_group( name, value...)<br>c.radio_group( options) <br>Returns an HTML string to define a radio button group. Tag attributes can be passed as a hash. |
| 20 | c.reset( name[, value])<br>c.reset( options) <br>Returns an HTML string to define a reset button. Tag attributes can be passed as a hash. |
| 21 | c.text_field( name[, value[, size=40[, max]]])<br>c.text_field( options) <br>Returns an HTML string to define a text field. Tag attributes can be passed as a hash. |
| 22 | c.textarea( name[, cols=70[, rows=10]]) { ...}<br>c.textarea( options) { ...} <br>Returns an HTML string to define a textarea field. If a block is specified, the block output will be the content of the textarea. Tag attributes can be passed as a hash. |
HTML Generation Methods
You can use the corresponding HTML tag names in a CGI instance to create HTML tags. Here is an example:
Example
#!/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
}
}
}
}
CGI Object Attributes
You can use the following attributes in a CGI instance:
| Attribute | Return Value |
|---|---|
| accept | Accepted MIME types |
| accept_charset | Accepted character sets |
| accept_encoding | Accepted encodings |
| accept_language | Accepted languages |
| auth_type | Accepted types |
| raw_cookie | Cookie data (raw string) |
| content_length | Content length |
| content_type | Content type |
| From | Client e-mail address |
| gateway_interface | CGI version |
| path_info | Path |
| path_translated | Translated path |
| Query_string | Query string |
| referer | Previous visited URL |
| remote_addr | Client host address (IP) |
| remote_host | Client host name |
| remote_ident | Client name |
| remote_user | Authenticated user |
| request_method | Request method (GET, POST, etc.) |
| script_name | Parameter name |
| server_name | Server name |
| server_port | Server port |
| server_protocol | Server protocol |
| server_software | Server software |
| user_agent | User agent |