Scanning is intentionally conservative because we have no way of rolling back an agressive block (at this time)
If a block was stopped for some trivial reason, (like an empty line) but the next line would have caused it to be balanced then we can check that condition and grab just one more line either up or down.
For example, below if we’re scanning up, line 2 might cause the scanning to stop. This is because empty lines might denote logical breaks where the user intended to chunk code which is a good place to stop and check validity. Unfortunately it also means we might have a “dangling” keyword or end.
1 def bark 2 3 end
If lines 2 and 3 are in the block, then when this method is run it would see it is unbalanced, but that acquiring line 1 would make it balanced, so that’s what it does.
See the OpenSSL
documentation for EVP_PKEY_new_raw_public_key()
Serializes the public key to DER-encoded X.509 SubjectPublicKeyInfo format.
Serializes the public key to PEM-encoded X.509 SubjectPublicKeyInfo format.
A PEM-encoded key will look like:
-----BEGIN PUBLIC KEY----- [...] -----END PUBLIC KEY-----
See the OpenSSL
documentation for EVP_PKEY_get_raw_public_key()
Expands lazy
enumerator to an array. See Enumerable#to_a
.
Indicated whether this Cipher
instance uses an Authenticated Encryption mode.
Called when an alias is found to anchor
. anchor
will be the name of the anchor found.
Here we have an example of an array that references itself in YAML:
--- &ponies - first element - *ponies
&ponies is the anchor, *ponies is the alias. In this case, alias is called with “ponies”.
Get the output style, canonical or not.
Set
the output style to canonical, or not.
The line number of the current token. This value starts from 1. This method is valid only in event handlers.
Creates a new Socket::Option
object for SOL_SOCKET/SO_LINGER.
onoff should be an integer or a boolean.
secs should be the number of seconds.
p Socket::Option.linger(true, 10) #=> #<Socket::Option: UNSPEC SOCKET LINGER on 10sec>
Returns the linger data in sockopt as a pair of boolean and integer.
sockopt = Socket::Option.linger(true, 10) p sockopt.linger => [true, 10]
Returns the internal Syslog
object that is initialized when the first instance is created.
Specifies the internal Syslog
object to be used.
Returns array of type libraries. This method will be OBSOLETE. Use WIN32OLE_TYPELIB.typelibs.collect{|t| t.name} instead.