The StaticSet
is a static set of gem specifications used for testing only. It is available by requiring Gem::TestCase
.
RFC 2617 Digest
Access Authentication for WEBrick
Use this class to add digest authentication to a WEBrick
servlet.
Here is an example of how to set up DigestAuth:
config = { :Realm => 'DigestAuth example realm' } htdigest = WEBrick::HTTPAuth::Htdigest.new 'my_password_file' htdigest.set_passwd config[:Realm], 'username', 'password' htdigest.flush config[:UserDB] = htdigest digest_auth = WEBrick::HTTPAuth::DigestAuth.new config
When using this as with a servlet be sure not to create a new DigestAuth
object in the servlet’s initialize. By default WEBrick
creates a new servlet instance for every request and the DigestAuth
object must be used across requests.
Digest
authentication for proxy servers. See DigestAuth
for details.
Htdigest
accesses apache-compatible digest password files. Passwords are matched to a realm where they are valid. For security, the path for a digest password database should be stored outside of the paths available to the HTTP server.
Htdigest
is intended for use with WEBrick::HTTPAuth::DigestAuth
and stores passwords using cryptographic hashes.
htpasswd = WEBrick::HTTPAuth::Htdigest.new 'my_password_file' htpasswd.set_passwd 'my realm', 'username', 'password' htpasswd.flush
AbstractServlet
allows HTTP server modules to be reused across multiple servers and allows encapsulation of functionality.
By default a servlet will respond to GET, HEAD (through an alias to GET) and OPTIONS requests.
By default a new servlet is initialized for every request. A servlet instance can be reused by overriding ::get_instance
in the AbstractServlet
subclass.
class Simple < WEBrick::HTTPServlet::AbstractServlet def do_GET request, response status, content_type, body = do_stuff_with request response.status = status response['Content-Type'] = content_type response.body = body end def do_stuff_with request return 200, 'text/plain', 'you got a page' end end
This servlet can be mounted on a server at a given path:
server.mount '/simple', Simple
Servlets can be configured via initialize. The first argument is the HTTP server the servlet is being initialized for.
class Configurable < Simple def initialize server, color, size super server @color = color @size = size end def do_stuff_with request content = "<p " \ %q{style="color: #{@color}; font-size: #{@size}"} \ ">Hello, World!" return 200, "text/html", content end end
This servlet must be provided two arguments at mount time:
server.mount '/configurable', Configurable, 'red', '2em'
Root of the HTTP status class hierarchy
An object representation of a stack frame, initialized by Kernel#caller_locations
.
For example:
# caller_locations.rb def a(skip) caller_locations(skip) end def b(skip) a(skip) end def c(skip) b(skip) end c(0..2).map do |call| puts call.to_s end
Running ruby caller_locations.rb
will produce:
caller_locations.rb:2:in `a' caller_locations.rb:5:in `b' caller_locations.rb:8:in `c'
Here’s another example with a slightly different result:
# foo.rb class Foo attr_accessor :locations def initialize(skip) @locations = caller_locations(skip) end end Foo.new(0..2).locations.map do |call| puts call.to_s end
Now run ruby foo.rb
and you should see:
init.rb:4:in `initialize' init.rb:8:in `new' init.rb:8:in `<main>'
Includes URI::REGEXP::PATTERN
An error that occurred during the resolution process
SSLServer
represents a TCP/IP server socket with Secure Sockets Layer.
The parent class for all primitive encodings. Attributes are the same as for ASN1Data
, with the addition of tagging
. Primitive
values can never be infinite length encodings, thus it is not possible to set the infinite_length
attribute for Primitive
and its sub-classes.
Primitive
sub-classes and their mapping to Ruby classes OpenSSL::ASN1::EndOfContent <=> value
is always nil
OpenSSL::ASN1::Boolean <=> value
is a Boolean
OpenSSL::ASN1::Integer
<=> value
is an OpenSSL::BN
OpenSSL::ASN1::BitString <=> value
is a String
OpenSSL::ASN1::OctetString <=> value
is a String
OpenSSL::ASN1::Null <=> value
is always nil
OpenSSL::ASN1::Object
<=> value
is a String
OpenSSL::ASN1::Enumerated <=> value
is an OpenSSL::BN
OpenSSL::ASN1::UTF8String <=> value
is a String
OpenSSL::ASN1::NumericString <=> value
is a String
OpenSSL::ASN1::PrintableString <=> value
is a String
OpenSSL::ASN1::T61String <=> value
is a String
OpenSSL::ASN1::VideotexString <=> value
is a String
OpenSSL::ASN1::IA5String <=> value
is a String
OpenSSL::ASN1::UTCTime <=> value
is a Time
OpenSSL::ASN1::GeneralizedTime <=> value
is a Time
OpenSSL::ASN1::GraphicString <=> value
is a String
OpenSSL::ASN1::ISO64String <=> value
is a String
OpenSSL::ASN1::GeneralString <=> value
is a String
OpenSSL::ASN1::UniversalString <=> value
is a String
OpenSSL::ASN1::BMPString <=> value
is a String
unused_bits
: if the underlying BIT STRING’s length is a multiple of 8 then unused_bits
is 0. Otherwise unused_bits
indicates the number of bits that are to be ignored in the final octet of the BitString
‘s value
.
OpenSSL::ASN1::ObjectId
NOTE: While OpenSSL::ASN1::ObjectId.new
will allocate a new ObjectId
, it is not typically allocated this way, but rather that are received from parsed ASN1
encodings.
sn
: the short name as defined in <openssl/objects.h>.
ln
: the long name as defined in <openssl/objects.h>.
oid
: the object identifier as a String
, e.g. “1.2.3.4.5”
short_name
: alias for sn
.
long_name
: alias for ln
.
With the Exception
of OpenSSL::ASN1::EndOfContent, each Primitive
class constructor takes at least one parameter, the value
.
eoc = OpenSSL::ASN1::EndOfContent.new
Primitive
prim = <class>.new(value) # <class> being one of the sub-classes except EndOfContent prim_zero_tagged_implicit = <class>.new(value, 0, :IMPLICIT) prim_zero_tagged_explicit = <class>.new(value, 0, :EXPLICIT)
Psych::JSON::TreeBuilder
is an event based AST builder. Events are sent to an instance of Psych::JSON::TreeBuilder
and a JSON
AST is constructed.
YAMLTree
builds a YAML ast given a Ruby object. For example:
builder = Psych::Visitors::YAMLTree.new builder << { :foo => 'bar' } builder.tree # => #<Psych::Nodes::Stream .. }
Net::IMAP::BodyTypeMessage
represents MESSAGE/RFC822 body structures of messages.
Returns a Net::IMAP::Envelope giving the envelope structure.
Returns an object giving the body structure.
And Net::IMAP::BodyTypeMessage
has all methods of Net::IMAP::BodyTypeText
.
Net::IMAP::BodyTypeMultipart
represents multipart body structures of messages.
Returns the content media type name as defined in [MIME-IMB].
Returns the content subtype name as defined in [MIME-IMB].
Returns multiple parts.
Returns a hash that represents parameters as defined in [MIME-IMB].
Returns a Net::IMAP::ContentDisposition object giving the content disposition.
Returns a string or an array of strings giving the body language value as defined in [LANGUAGE-TAGS].
Returns extension data.
Returns true.