new(options = {})
public
Create a new CGI instance.
tag_maker |
This is the same as using the options_hash form with the value
{ :tag_maker => tag_maker } Note that it is recommended to use
the options_hash form, since it also allows you specify the
charset you will accept.
|
options_hash |
A Hash that recognizes three options:
:accept_charset |
specifies encoding of received query string. If omitted, @@accept_charset is used. If
the encoding is not valid, a CGI::InvalidEncoding will be raised.
Example. Suppose @@accept_charset is
“UTF-8”
when not specified:
cgi=CGI.new
when specified as “EUC-JP”:
cgi=CGI.new(:accept_charset => "EUC-JP")
| :tag_maker |
String that specifies which version of the HTML generation methods to use. If
not specified, no HTML generation
methods will be loaded.
The following values are supported:
“html3” |
HTML 3.x
| “html4” |
HTML 4.0
| “html4Tr” |
HTML 4.0 Transitional
| “html4Fr” |
HTML 4.0 with Framesets
| “html5” |
HTML 5
|
| :max_multipart_length |
Specifies maximum length of multipart data. Can be an Integer scalar or a lambda, that will be evaluated
when the request is parsed. This allows more complex logic to be set when
determining whether to accept multipart data (e.g. consult a registered
users upload allowance)
Default is 128 * 1024 * 1024 bytes
cgi=CGI.new(:max_multipart_length => 268435456)
cgi=CGI.new(:max_multipart_length => -> {check_filesystem})
|
|
block |
If provided, the block is called when an invalid encoding is encountered.
For example:
encoding_errors={}
cgi=CGI.new(:accept_charset=>"EUC-JP") do |name,value|
encoding_errors[name] = value
end
|
Finally, if the CGI object is not created in a
standard CGI call environment (that is, it can’t
locate REQUEST_METHOD in its environment), then it will run in
“offline” mode. In this mode, it reads its parameters from the command
line or (failing that) from standard input. Otherwise, cookies and other
parameters are parsed automatically from the standard CGI locations, which varies according to the
REQUEST_METHOD.
Show source
def initialize(options = {}, &block)
@accept_charset_error_block = block_given? ? block : nil
@options={
:accept_charset=>@@accept_charset,
:max_multipart_length=>@@max_multipart_length
}
case options
when Hash
@options.merge!(options)
when String
@options[:tag_maker]=options
end
@accept_charset=@options[:accept_charset]
@max_multipart_length=@options[:max_multipart_length]
if defined?(MOD_RUBY) && !ENV.key?("GATEWAY_INTERFACE")
Apache.request.setup_cgi_env
end
extend QueryExtension
@multipart = false
initialize_query()
@output_cookies = nil
@output_hidden = nil
case @options[:tag_maker]
when "html3"
require 'cgi/html'
extend Html3
extend HtmlExtension
when "html4"
require 'cgi/html'
extend Html4
extend HtmlExtension
when "html4Tr"
require 'cgi/html'
extend Html4Tr
extend HtmlExtension
when "html4Fr"
require 'cgi/html'
extend Html4Tr
extend Html4Fr
extend HtmlExtension
when "html5"
require 'cgi/html'
extend Html5
extend HtmlExtension
end
end