stdlib/cgi/0/core.rbs in rbs-2.2.1 vs stdlib/cgi/0/core.rbs in rbs-2.2.2
- old
+ new
@@ -267,10 +267,14 @@
# include CGI::Util
# escapeHTML('Usage: foo "bar" <baz>')
# h('Usage: foo "bar" <baz>') # alias
#
class CGI
+ include CGI::Util
+
+ extend CGI::Util
+
# <!--
# rdoc-file=lib/cgi/core.rb
# - CGI.new(tag_maker) { block }
# - CGI.new(options_hash = {}) { block }
# -->
@@ -348,15 +352,10 @@
# varies according to the REQUEST_METHOD.
#
def initialize: (?String tag_maker) ?{ (String name, String value) -> void } -> void
| (Hash[Symbol, untyped] options_hash) ?{ (String name, String value) -> void } -> void
- # <!-- rdoc-file=lib/cgi/core.rb -->
- # Return the accept character set for this CGI instance.
- #
- attr_reader accept_charset: String
-
# <!--
# rdoc-file=lib/cgi/core.rb
# - accept_charset()
# -->
# Return the accept character set for all new CGI instances.
@@ -379,15 +378,20 @@
#
# params = CGI.parse("query_string")
# # {"name1" => ["value1", "value2", ...],
# # "name2" => ["value1", "value2", ...], ... }
#
- def self.parse: (String query) -> Hash[String, String | Array[String]]
+ def self.parse: (String query) -> Hash[String, Array[String]]
public
# <!-- rdoc-file=lib/cgi/core.rb -->
+ # Return the accept character set for this CGI instance.
+ #
+ attr_reader accept_charset: String
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
# This method is an alias for #http_header, when HTML5 tag maker is inactive.
#
# NOTE: use #http_header to create HTTP header blocks, this alias is only
# provided for backwards compatibility.
#
@@ -511,11 +515,11 @@
# This method does not perform charset conversion.
#
def http_header: (?String options) -> String
| (?Hash[String | Symbol, untyped] header_hash) -> String
- def nph?: () -> boolish
+ def nph?: () -> untyped
# <!--
# rdoc-file=lib/cgi/core.rb
# - cgi.out(content_type_string='text/html')
# - cgi.out(headers_hash)
@@ -610,45 +614,610 @@
# - stdoutput()
# -->
# Synonym for $stdout.
#
def stdoutput: () -> ::IO
-end
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# String for carriage return
-#
-CGI::CR: String
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # String for carriage return
+ #
+ CR: String
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# Standard internet newline sequence
-#
-CGI::EOL: String
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Standard internet newline sequence
+ #
+ EOL: String
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# HTTP status codes.
-#
-CGI::HTTP_STATUS: Hash[String, String]
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # HTTP status codes.
+ #
+ HTTP_STATUS: Hash[String, String]
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# String for linefeed
-#
-CGI::LF: String
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # String for linefeed
+ #
+ LF: String
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# Maximum number of request parameters when multipart
-#
-CGI::MAX_MULTIPART_COUNT: Integer
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Maximum number of request parameters when multipart
+ #
+ MAX_MULTIPART_COUNT: Integer
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# Whether processing will be required in binary vs text
-#
-CGI::NEEDS_BINMODE: bool
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Whether processing will be required in binary vs text
+ #
+ NEEDS_BINMODE: bool
-# <!-- rdoc-file=lib/cgi/core.rb -->
-# Path separators in different environments.
-#
-CGI::PATH_SEPARATOR: Hash[String, String]
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Path separators in different environments.
+ #
+ PATH_SEPARATOR: Hash[String, String]
-CGI::REVISION: String
+ REVISION: String
-CGI::VERSION: String
+ VERSION: String
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Class representing an HTTP cookie.
+ #
+ # In addition to its specific fields and methods, a Cookie instance is a
+ # delegator to the array of its values.
+ #
+ # See RFC 2965.
+ #
+ # ## Examples of use
+ # cookie1 = CGI::Cookie.new("name", "value1", "value2", ...)
+ # cookie1 = CGI::Cookie.new("name" => "name", "value" => "value")
+ # cookie1 = CGI::Cookie.new('name' => 'name',
+ # 'value' => ['value1', 'value2', ...],
+ # 'path' => 'path', # optional
+ # 'domain' => 'domain', # optional
+ # 'expires' => Time.now, # optional
+ # 'secure' => true, # optional
+ # 'httponly' => true # optional
+ # )
+ #
+ # cgi.out("cookie" => [cookie1, cookie2]) { "string" }
+ #
+ # name = cookie1.name
+ # values = cookie1.value
+ # path = cookie1.path
+ # domain = cookie1.domain
+ # expires = cookie1.expires
+ # secure = cookie1.secure
+ # httponly = cookie1.httponly
+ #
+ # cookie1.name = 'name'
+ # cookie1.value = ['value1', 'value2', ...]
+ # cookie1.path = 'path'
+ # cookie1.domain = 'domain'
+ # cookie1.expires = Time.now + 30
+ # cookie1.secure = true
+ # cookie1.httponly = true
+ #
+ class Cookie < Array[String]
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - parse(raw_cookie)
+ # -->
+ # Parse a raw cookie string into a hash of cookie-name=>Cookie pairs.
+ #
+ # cookies = CGI::Cookie.parse("raw_cookie_string")
+ # # { "name1" => cookie1, "name2" => cookie2, ... }
+ #
+ def self.parse: (String raw_cookie) -> Hash[String, instance]
+
+ public
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Domain for which this cookie applies, as a `String`
+ #
+ def domain: () -> String?
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Domain for which this cookie applies, as a `String`
+ #
+ def domain=: (String domain) -> String
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Time at which this cookie expires, as a `Time`
+ #
+ def expires: () -> Time?
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Time at which this cookie expires, as a `Time`
+ #
+ def expires=: (Time time) -> Time
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # True if this cookie is httponly; false otherwise
+ #
+ def httponly: () -> bool
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - httponly=(val)
+ # -->
+ # Set whether the Cookie is a httponly cookie or not.
+ #
+ # `val` must be a boolean.
+ #
+ def httponly=: (boolish val) -> bool
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - inspect()
+ # -->
+ # A summary of cookie string.
+ #
+ def inspect: () -> String
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Name of this cookie, as a `String`
+ #
+ def name: () -> String
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Name of this cookie, as a `String`
+ #
+ def name=: (String name) -> String
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Path for which this cookie applies, as a `String`
+ #
+ def path: () -> String?
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # Path for which this cookie applies, as a `String`
+ #
+ def path=: (String path) -> String
+
+ # <!-- rdoc-file=lib/cgi/cookie.rb -->
+ # True if this cookie is secure; false otherwise
+ #
+ def secure: () -> bool
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - secure=(val)
+ # -->
+ # Set whether the Cookie is a secure cookie or not.
+ #
+ # `val` must be a boolean.
+ #
+ def secure=: [A] (boolish val) -> A
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - to_s()
+ # -->
+ # Convert the Cookie to its string representation.
+ #
+ def to_s: () -> String
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - value()
+ # -->
+ # Returns the value or list of values for this cookie.
+ #
+ def value: () -> Array[String]
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - value=(val)
+ # -->
+ # Replaces the value of this cookie with a new value or list of values.
+ #
+ def value=: (String val) -> String
+ | (Array[String] val) -> Array[String]
+
+ private
+
+ # <!--
+ # rdoc-file=lib/cgi/cookie.rb
+ # - Cookie.new(name_string,*value)
+ # - Cookie.new(options_hash)
+ # -->
+ # Create a new CGI::Cookie object.
+ #
+ # `name_string`
+ # : The name of the cookie; in this form, there is no #domain or #expiration.
+ # The #path is gleaned from the `SCRIPT_NAME` environment variable, and
+ # #secure is false.
+ # `*value`
+ # : value or list of values of the cookie
+ # `options_hash`
+ # : A Hash of options to initialize this Cookie. Possible options are:
+ #
+ # name
+ # : the name of the cookie. Required.
+ # value
+ # : the cookie's value or list of values.
+ # path
+ # : the path for which this cookie applies. Defaults to the value of the
+ # `SCRIPT_NAME` environment variable.
+ # domain
+ # : the domain for which this cookie applies.
+ # expires
+ # : the time at which this cookie expires, as a `Time` object.
+ # secure
+ # : whether this cookie is a secure cookie or not (default to false).
+ # Secure cookies are only transmitted to HTTPS servers.
+ # httponly
+ # : whether this cookie is a HttpOnly cookie or not (default to
+ #
+ # false). HttpOnly cookies are not available to javascript.
+ #
+ # These keywords correspond to attributes of the cookie object.
+ #
+ def initialize: (String name_string, *String value) -> void
+ | (Hash[String, untyped] options_hash) -> void
+ end
+
+ module Escape
+ public
+
+ # <!--
+ # rdoc-file=ext/cgi/escape/escape.c
+ # - CGI.escape(string) -> string
+ # -->
+ # Returns URL-escaped string.
+ #
+ def escape: (string str) -> String
+
+ # <!--
+ # rdoc-file=ext/cgi/escape/escape.c
+ # - CGI.escapeHTML(string) -> string
+ # -->
+ # Returns HTML-escaped string.
+ #
+ def escapeHTML: (string str) -> String
+
+ # <!--
+ # rdoc-file=ext/cgi/escape/escape.c
+ # - CGI.unescape(string, encoding=@@accept_charset) -> string
+ # -->
+ # Returns URL-unescaped string.
+ #
+ def unescape: (string str, ?encoding encoding) -> String
+
+ # <!--
+ # rdoc-file=ext/cgi/escape/escape.c
+ # - CGI.unescapeHTML(string) -> string
+ # -->
+ # Returns HTML-unescaped string.
+ #
+ def unescapeHTML: (string str) -> String
+ end
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Exception raised when there is an invalid encoding detected
+ #
+ class InvalidEncoding < Exception
+ end
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Mixin module that provides the following:
+ #
+ # 1. 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 variable `AUTH_TYPE`, and
+ # `accept` will return the value for `HTTP_ACCEPT`.
+ #
+ # 2. Access to cookies, including the cookies attribute.
+ #
+ # 3. Access to parameters, including the params attribute, and overloading #[]
+ # to perform parameter value lookup by key.
+ #
+ # 4. The initialize_query method, for initializing the above mechanisms,
+ # handling multipart forms, and allowing the class to be used in "offline"
+ # mode.
+ #
+ module QueryExtension
+ public
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - [](key)
+ # -->
+ # 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.
+ #
+ def []: (String key) -> String?
+
+ def accept: () -> String?
+
+ def accept_charset: () -> String?
+
+ def accept_encoding: () -> String?
+
+ def accept_language: () -> String?
+
+ def auth_type: () -> String?
+
+ def cache_control: () -> String?
+
+ def content_length: () -> String?
+
+ def content_type: () -> String?
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Get the cookies as a hash of cookie-name=>Cookie pairs.
+ #
+ def cookies: () -> Hash[String, Cookie]
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Get the cookies as a hash of cookie-name=>Cookie pairs.
+ #
+ def cookies=: (Hash[String, Cookie] cookies) -> Hash[String, Cookie]
+
+ def create_body: (boolish is_large) -> (Tempfile | StringIO)
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Get the uploaded files as a hash of name=>values pairs
+ #
+ def files: () -> Hash[String, Tempfile | StringIO]
+
+ def from: () -> String?
+
+ def gateway_interface: () -> String?
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - has_key?(*args)
+ # -->
+ # Returns true if a given query string parameter exists.
+ #
+ def has_key?: (String key) -> bool
+
+ def host: () -> String?
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - include?(*args)
+ # -->
+ #
+ alias include? has_key?
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - key?(*args)
+ # -->
+ #
+ alias key? has_key?
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - keys(*args)
+ # -->
+ # Return all query parameter names as an array of String.
+ #
+ def keys: () -> Array[String]
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - multipart?()
+ # -->
+ # Returns whether the form contained multipart/form-data
+ #
+ def multipart?: () -> bool
+
+ def negotiate: () -> String?
+
+ # <!-- rdoc-file=lib/cgi/core.rb -->
+ # Get the parameters as a hash of name=>values pairs, where values is an Array.
+ #
+ def params: () -> Hash[String, Array[String] | Tempfile | StringIO]
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - params=(hash)
+ # -->
+ # Set all the parameters.
+ #
+ def params=: (Hash[String, Array[String] | Tempfile | StringIO] hash) -> Hash[String, Array[String] | Tempfile | StringIO]
+
+ def path_info: () -> String?
+
+ def path_translated: () -> String?
+
+ def pragma: () -> String?
+
+ def query_string: () -> String?
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - raw_cookie()
+ # -->
+ # Get the raw cookies as a string.
+ #
+ def raw_cookie: () -> String?
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - raw_cookie2()
+ # -->
+ # Get the raw RFC2965 cookies as a string.
+ #
+ def raw_cookie2: () -> String?
+
+ def referer: () -> String?
+
+ def remote_addr: () -> String?
+
+ def remote_host: () -> String?
+
+ def remote_ident: () -> String?
+
+ def remote_user: () -> String?
+
+ def request_method: () -> String?
+
+ def script_name: () -> String?
+
+ def server_name: () -> String?
+
+ def server_port: () -> String?
+
+ def server_protocol: () -> String?
+
+ def server_software: () -> String?
+
+ def unescape_filename?: () -> bool
+
+ def user_agent: () -> String?
+
+ private
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - initialize_query()
+ # -->
+ # A wrapper class to use a StringIO object as the body and switch to a TempFile
+ # when the passed threshold is passed. Initialize the data from the query.
+ #
+ # Handles multipart forms (in particular, forms that involve file uploads).
+ # Reads query parameters in the @params field, and cookies into @cookies.
+ #
+ def initialize_query: () -> void
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - read_from_cmdline()
+ # -->
+ # offline mode. read name=value pairs on standard input.
+ #
+ def read_from_cmdline: () -> String
+
+ # <!--
+ # rdoc-file=lib/cgi/core.rb
+ # - read_multipart(boundary, content_length)
+ # -->
+ # Parses multipart form elements according to
+ # http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2
+ #
+ # Returns a hash of multipart form parameters with bodies of type StringIO or
+ # Tempfile depending on whether the multipart form element exceeds 10 KB
+ #
+ # params[name => body]
+ #
+ def read_multipart: (String boundary, Integer content_length) -> (Tempfile | StringIO)
+ end
+
+ module Util
+ include CGI::Escape
+
+ public
+
+ # <!--
+ # rdoc-file=lib/cgi/util.rb
+ # - escapeElement(string, *elements)
+ # -->
+ # Escape only the tags of certain HTML elements in `string`.
+ #
+ # Takes an element or elements or array of elements. Each element is specified
+ # by the name of the element, without angle brackets. This matches both the
+ # start and the end tag of that element. The attribute list of the open tag will
+ # also be escaped (for instance, the double-quotes surrounding attribute
+ # values).
+ #
+ # print CGI.escapeElement('<BR><A HREF="url"></A>', "A", "IMG")
+ # # "<BR><A HREF="url"></A>"
+ #
+ # print CGI.escapeElement('<BR><A HREF="url"></A>', ["A", "IMG"])
+ # # "<BR><A HREF="url"></A>"
+ #
+ def escapeElement: (string string, *String | Array[String] elements) -> String
+
+ # <!-- rdoc-file=lib/cgi/util.rb -->
+ # Synonym for CGI.escapeElement(str)
+ #
+ alias escape_element escapeElement
+
+ # <!-- rdoc-file=lib/cgi/util.rb -->
+ # Synonym for CGI.escapeHTML(str)
+ #
+ alias escape_html escapeHTML
+
+ # <!--
+ # rdoc-file=lib/cgi/util.rb
+ # - h(string)
+ # -->
+ #
+ alias h escapeHTML
+
+ # <!--
+ # rdoc-file=lib/cgi/util.rb
+ # - pretty(string, shift = " ")
+ # -->
+ # Prettify (indent) an HTML string.
+ #
+ # `string` is the HTML string to indent. `shift` is the indentation unit to
+ # use; it defaults to two spaces.
+ #
+ # print CGI.pretty("<HTML><BODY></BODY></HTML>")
+ # # <HTML>
+ # # <BODY>
+ # # </BODY>
+ # # </HTML>
+ #
+ # print CGI.pretty("<HTML><BODY></BODY></HTML>", "\t")
+ # # <HTML>
+ # # <BODY>
+ # # </BODY>
+ # # </HTML>
+ #
+ def pretty: (string string, ?String shift) -> String
+
+ # <!--
+ # rdoc-file=lib/cgi/util.rb
+ # - rfc1123_date(time)
+ # -->
+ # Format a `Time` object as a String using the format specified by RFC 1123.
+ #
+ # CGI.rfc1123_date(Time.now)
+ # # Sat, 01 Jan 2000 00:00:00 GMT
+ #
+ def rfc1123_date: (Time time) -> String
+
+ # <!--
+ # rdoc-file=lib/cgi/util.rb
+ # - unescapeElement(string, *elements)
+ # -->
+ # Undo escaping such as that done by CGI.escapeElement()
+ #
+ # print CGI.unescapeElement(
+ # CGI.escapeHTML('<BR><A HREF="url"></A>'), "A", "IMG")
+ # # "<BR><A HREF="url"></A>"
+ #
+ # print CGI.unescapeElement(
+ # CGI.escapeHTML('<BR><A HREF="url"></A>'), ["A", "IMG"])
+ # # "<BR><A HREF="url"></A>"
+ #
+ def unescapeElement: (string string, *String | Array[String] elements) -> String
+
+ # <!-- rdoc-file=lib/cgi/util.rb -->
+ # Synonym for CGI.unescapeElement(str)
+ #
+ alias unescape_element unescapeElement
+
+ # <!-- rdoc-file=lib/cgi/util.rb -->
+ # Synonym for CGI.unescapeHTML(str)
+ #
+ alias unescape_html unescapeHTML
+
+ # Abbreviated day-of-week names specified by RFC 822
+ RFC822_DAYS: Array[String]
+
+ # Abbreviated month names specified by RFC 822
+ RFC822_MONTHS: Array[String]
+
+ # <!-- rdoc-file=lib/cgi/util.rb -->
+ # The set of special characters and their escaped values
+ #
+ TABLE_FOR_ESCAPE_HTML__: Hash[String, String]
+ end
+end