PStore-based session storage class.
This builds upon the top-level PStore
class provided by the library file pstore.rb. Session
data is marshalled and stored in a file. File
locking and transaction services are provided.
When we produce tokens, we produce the same arrays that Ripper
does. However, we add a couple of convenience methods onto them to make them a little easier to work with. We delegate all other methods to the array.
Ripper
doesn’t include the rest of the token in the event, so we need to trim it down to just the content on the first line when comparing.
Tokens where state should be ignored used for :on_comment, :on_heredoc_end, :on_embexpr_end
Ident tokens for the most part are exactly the same, except sometimes we know an ident is a local when ripper doesn’t (when they are introduced through named captures in regular expressions). In that case we don’t compare the state.
Ignored newlines can occasionally have a LABEL state attached to them, so we compare the state differently here.
If we have an identifier that follows a method name like:
def foo bar
then Ripper
will mark bar as END|LABEL if there is a local in a parent scope named bar because it hasn’t pushed the local table yet. We do this more accurately, so we need to allow comparing against both END and END|LABEL.
A field representing the start and end code unit offsets.
A repository is a configured collection of fields and a set of entries that knows how to reparse a source and reify the values.
This is the JSON
generator implemented as a C extension. It can be configured to be used by setting
JSON.generator = JSON::Ext::Generator
with the method generator= in JSON
.
RubyVM::AbstractSyntaxTree::Location
instances are created by RubyVM::AbstractSyntaxTree::Node#locations
.
This class is MRI specific.
Extends Fiddle::Closure
to allow for building the closure in a block
The parent class for all primitive encodings. Attributes are the same as for ASN1Data
, with the addition of tagging. Primitive
values can never be encoded with indefinite length form, thus it is not possible to set the indefinite_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 true
or false
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
OpenSSL::ASN1::BitString
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.
EndOfContent
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)
Generic error class for all errors raised in ASN1
and any of the classes defined in it.
This is the generic exception for OpenSSL::Engine
related errors
Generic exception class raised if an error occurs in OpenSSL::KDF
module.
Generic Exception
class that is raised if an error occurs during an operation on an instance of OpenSSL::Netscape::SPKI
.
Raised when errors occur during PKey#sign
or PKey#verify
.