Module: CGI::QueryExtension
- Defined in:
- lib/cgi/core.rb
Overview
Mixin module that provides the following:
-
Access to the CGI environment variables as methods. See documentation to the CGI class for a list of these variables. The methods are exposed by removing the leading
HTTP_
(if it exists) and downcasing the name. For example,auth_type
will return the environment variableAUTH_TYPE
, andaccept
will return the value forHTTP_ACCEPT
. -
Access to cookies, including the cookies attribute.
-
Access to parameters, including the params attribute, and overloading #[] to perform parameter value lookup by key.
-
The initialize_query method, for initializing the above mechanisms, handling multipart forms, and allowing the class to be used in “offline” mode.
Instance Attribute Summary collapse
-
#cookies ⇒ Object
Get the cookies as a hash of cookie-name=>Cookie pairs.
-
#files ⇒ Object
readonly
Get the uploaded files as a hash of name=>values pairs.
-
#params ⇒ Object
Get the parameters as a hash of name=>values pairs, where values is an Array.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Get the value for the parameter with a given key.
-
#create_body(is_large) ⇒ Object
:nodoc:.
-
#has_key?(*args) ⇒ Boolean
(also: #key?, #include?)
Returns true if a given query string parameter exists.
-
#keys(*args) ⇒ Object
Return all query parameter names as an array of String.
-
#multipart? ⇒ Boolean
Returns whether the form contained multipart/form-data.
-
#raw_cookie ⇒ Object
Get the raw cookies as a string.
-
#raw_cookie2 ⇒ Object
Get the raw RFC2965 cookies as a string.
-
#unescape_filename? ⇒ Boolean
:nodoc:.
Instance Attribute Details
#cookies ⇒ Object
Get the cookies as a hash of cookie-name=>Cookie pairs.
464 465 466 |
# File 'lib/cgi/core.rb', line 464 def @cookies end |
#files ⇒ Object (readonly)
Get the uploaded files as a hash of name=>values pairs
471 472 473 |
# File 'lib/cgi/core.rb', line 471 def files @files end |
#params ⇒ Object
Get the parameters as a hash of name=>values pairs, where values is an Array.
468 469 470 |
# File 'lib/cgi/core.rb', line 468 def params @params end |
Instance Method Details
#[](key) ⇒ Object
Get the value for the parameter with a given key.
If the parameter has multiple values, only the first will be retrieved; use #params to get the array of values.
714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 |
# File 'lib/cgi/core.rb', line 714 def [](key) params = @params[key] return '' unless params value = params[0] if @multipart if value return value elsif defined? StringIO StringIO.new("".b) else Tempfile.new("CGI",encoding: Encoding::ASCII_8BIT) end else str = if value then value.dup else "" end str end end |
#create_body(is_large) ⇒ Object
:nodoc:
603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 |
# File 'lib/cgi/core.rb', line 603 def create_body(is_large) #:nodoc: if is_large require 'tempfile' body = Tempfile.new('CGI', encoding: Encoding::ASCII_8BIT) else begin require 'stringio' body = StringIO.new("".b) rescue LoadError require 'tempfile' body = Tempfile.new('CGI', encoding: Encoding::ASCII_8BIT) end end body.binmode if defined? body.binmode return body end |
#has_key?(*args) ⇒ Boolean Also known as: key?, include?
Returns true if a given query string parameter exists.
738 739 740 |
# File 'lib/cgi/core.rb', line 738 def has_key?(*args) @params.has_key?(*args) end |
#keys(*args) ⇒ Object
Return all query parameter names as an array of String.
733 734 735 |
# File 'lib/cgi/core.rb', line 733 def keys(*args) @params.keys(*args) end |
#multipart? ⇒ Boolean
Returns whether the form contained multipart/form-data
706 707 708 |
# File 'lib/cgi/core.rb', line 706 def multipart? @multipart end |
#raw_cookie ⇒ Object
Get the raw cookies as a string.
454 455 456 |
# File 'lib/cgi/core.rb', line 454 def env_table["HTTP_COOKIE"] end |
#raw_cookie2 ⇒ Object
Get the raw RFC2965 cookies as a string.
459 460 461 |
# File 'lib/cgi/core.rb', line 459 def env_table["HTTP_COOKIE2"] end |
#unescape_filename? ⇒ Boolean
:nodoc:
619 620 621 622 623 |
# File 'lib/cgi/core.rb', line 619 def unescape_filename? #:nodoc: user_agent = $CGI_ENV['HTTP_USER_AGENT'] return false unless user_agent return /Mac/i.match(user_agent) && /Mozilla/i.match(user_agent) && !/MSIE/i.match(user_agent) end |