An HTTP response. This is filled in by the service or do_* methods of a WEBrick
HTTP Servlet.
An HTTP Server
Raised when a mathematical function is evaluated outside of its domain of definition.
For example, since cos
returns values in the range -1..1, its inverse function acos
is only defined on that interval:
Math.acos(42)
produces:
Math::DomainError: Numerical argument is out of domain - "acos"
Process::Status
encapsulates the information on the status of a running or terminated system process. The built-in variable $?
is either nil
or a Process::Status
object.
fork { exit 99 } #=> 26557 Process.wait #=> 26557 $?.class #=> Process::Status $?.to_i #=> 25344 $? >> 8 #=> 99 $?.stopped? #=> false $?.exited? #=> true $?.exitstatus #=> 99
Posix systems record information on processes using a 16-bit integer. The lower bits record the process status (stopped, exited, signaled) and the upper bits possibly contain additional information (for example the program’s return code in the case of exited processes). Pre Ruby 1.8, these bits were exposed directly to the Ruby program. Ruby now encapsulates these in a Process::Status
object. To maximize compatibility, however, these objects retain a bit-oriented interface. In the descriptions that follow, when we talk about the integer value of stat, we’re referring to this 16 bit value.
Raised by Encoding
and String methods when a transcoding operation fails.
Raised by Encoding
and String methods when the string being transcoded contains a byte invalid for the either the source or target encoding.
Raised by transcoding methods when a named encoding does not correspond with a known converter.
Raised by Timeout.timeout
when the block times out.
File::Constants
provides file-related constants. All possible file constants are listed in the documentation but they may not all be present on your platform.
If the underlying platform doesn’t define a constant the corresponding Ruby constant is not defined.
Your platform documentations (e.g. man open(2)) may describe more detailed information.
This module provides instance methods for a digest implementation object to calculate message digest values.
A DSL that provides the means to dynamically load libraries and build modules around them including calling extern functions within the C library that has been loaded.
require 'fiddle' require 'fiddle/import' module LibSum extend Fiddle::Importer dlload './libsum.so' extern 'double sum(double*, int)' extern 'double split(double)' end
Used to construct C classes (CUnion
, CStruct
, etc)
Fiddle::Importer#struct
and Fiddle::Importer#union
wrap this functionality in an easy-to-use manner.
Socket::Constants
provides socket-related constants. All possible socket constants are listed in the documentation but they may not all be present on your platform.
If the underlying platform doesn’t define a constant the corresponding Ruby constant is not defined.
Module
managing the underlying network protocol(s) used by drb.
By default, drb uses the DRbTCPSocket
protocol. Other protocols can be defined. A protocol must define the following class methods:
[open(uri, config)] Open a client connection to the server at +uri+, using configuration +config+. Return a protocol instance for this connection. [open_server(uri, config)] Open a server listening at +uri+, using configuration +config+. Return a protocol instance for this listener. [uri_option(uri, config)] Take a URI, possibly containing an option component (e.g. a trailing '?param=val'), and return a [uri, option] tuple.
All of these methods should raise a DRbBadScheme
error if the URI
does not identify the protocol they support (e.g. “druby:” for the standard Ruby protocol). This is how the DRbProtocol
module, given a URI
, determines which protocol implementation serves that protocol.
The protocol instance returned by open_server
must have the following methods:
Accept a new connection to the server. Returns a protocol instance capable of communicating with the client.
Close the server connection.
Get the URI
for this server.
The protocol instance returned by open
must have the following methods:
Send a request to ref
with the given message id and arguments. This is most easily implemented by calling DRbMessage.send_request, providing a stream that sits on top of the current protocol.
Receive a reply from the server and return it as a [success-boolean, reply-value] pair. This is most easily implemented by calling DRb.recv_reply, providing a stream that sits on top of the current protocol.
Is this connection still alive?
Close this connection.
The protocol instance returned by open_server()
.accept() must have the following methods:
Receive a request from the client and return a [object, message, args, block] tuple. This is most easily implemented by calling DRbMessage.recv_request, providing a stream that sits on top of the current protocol.
Send a reply to the client. This is most easily implemented by calling DRbMessage.send_reply, providing a stream that sits on top of the current protocol.
Close this connection.
A new protocol is registered with the DRbProtocol
module using the add_protocol
method.
For examples of other protocols, see DRbUNIXSocket
in drb/unix.rb, and HTTP0 in sample/http0.rb and sample/http0serv.rb in the full drb distribution.
Mixin for HTTP and FTP URIs.
This is a set of entity constants – the ones defined in the XML
specification. These are gt
, lt
, amp
, quot
and apos
. CAUTION: these entities does not have parent and document
A template for stream parser listeners. Note that the declarations (attlistdecl, elementdecl, etc) are trivially processed; REXML
doesn’t yet handle doctype entity declarations, so you have to parse them out yourself.
ignorable_whitespace
WARNING
These methods are certainly going to change, until DTDs are fully supported. Be aware of this.
start_document end_document doctype elementdecl attlistdecl entitydecl notationdecl cdata xmldecl comment
Defines a number of tokens used for parsing XML
. Not for general consumption.
Atom
is an XML-based document format that is used to describe ‘feeds’ of related information. A typical use is in a news feed where the information is periodically updated and which users can subscribe to. The Atom
format is described in tools.ietf.org/html/rfc4287
The Atom
module provides support in reading and creating feeds.
See the RSS
module for examples consuming and creating feeds.