Returns a new binding each time near TOPLEVEL_BINDING for runs that do not specify a binding.
Creates a new ipaddr containing the given network byte ordered string form of an IP address.
Returns an arbitrary seed value. This is used by Random.new
when no seed value is specified as an argument.
Random.new_seed #=> 115032730400174366788466674494640623225
Creates a new MonitorMixin::ConditionVariable
associated with the Monitor
object.
This string is put at the end of a line that holds a JSON
array.
This string is put at the end of a line that holds a JSON
array.
newton.rb
Solves the nonlinear algebraic equation system f = 0 by Newton’s method. This program is not dependent on BigDecimal
.
To call:
n = nlsolve(f,x) where n is the number of iterations required, x is the initial value vector f is an Object which is used to compute the values of the equations to be solved.
It must provide the following methods:
returns the values of all functions at x
returns 0.0
returns 1.0
returns 2.0
returns 10.0
returns the convergence criterion (epsilon value) used to determine whether two values are considered equal. If |a-b| < epsilon, the two values are considered equal.
On exit, x is the solution vector.
Creates a new Lazy
enumerator. When the enumerator is actually enumerated (e.g. by calling force
), obj
will be enumerated and each value passed to the given block. The block can yield values back using yielder
. For example, to create a “filter+map” enumerator:
def filter_map(sequence) Lazy.new(sequence) do |yielder, *values| result = yield *values yielder << result if result end end filter_map(1..Float::INFINITY) {|i| i*i if i.even?}.first(5) #=> [4, 16, 36, 64, 100]
Generates a new enumerator object that iterates over the elements of given enumerable objects in sequence.
e = Enumerator::Chain.new(1..3, [4, 5]) e.to_a #=> [1, 2, 3, 4, 5] e.size #=> 5
Create a new SHA2
hash object with a given bit length.
Valid bit lengths are 256, 384 and 512.
Construct a new Closure
object.
ret
is the C type to be returned
args
is an Array
of arguments, passed to the callback function
abi
is the abi of the closure
If there is an error in preparing the ffi_cif or ffi_prep_closure, then a RuntimeError
will be raised.
Constructs a Function
object.
ptr
is a referenced function, of a Fiddle::Handle
args
is an Array
of arguments, passed to the ptr
function
ret_type
is the return type of the function
abi
is the ABI of the function
name
is the name of the function
need_gvl
is whether GVL is needed to call the function
Create a new handler that opens library
with flags
.
If no library
is specified or nil
is given, DEFAULT
is used, which is the equivalent to RTLD_DEFAULT. See man 3 dlopen
for more.
lib = Fiddle::Handle.new
The default is dependent on OS, and provide a handle for all libraries already loaded. For example, in most cases you can use this to access libc
functions, or ruby functions like rb_str_new
.
Create a new handler with the open handlers
Used internally by Fiddle::Importer.dlload
Wraps the C pointer addr
as a C struct with the given types
.
When the instance is garbage collected, the C function func
is called.
See also Fiddle::Pointer.new
Create a new pinned object reference. The Fiddle::Pinned
instance will prevent the GC
from moving object
.
Create a new pointer to address
with an optional size
and freefunc
.
freefunc
will be called when the instance is garbage collected.
Construct a new OpenSSL BIGNUM object.
If bn
is an Integer
or OpenSSL::BN
, a new instance of OpenSSL::BN
representing the same value is returned. See also Integer#to_bn
for the short-hand.
If a String
is given, the content will be parsed according to base
.
string
The string to be parsed.
base
The format. Must be one of the following:
0
- MPI format. See the man page BN_mpi2bn(3) for details.
2
- Variable-length and big-endian binary encoding of a positive number.
10
- Decimal number representation, with a leading ‘-’ for a negative number.
16
- Hexadeciaml number representation, with a leading ‘-’ for a negative number.
The string must contain a valid cipher name like “aes-256-cbc”.
A list of cipher names is available by calling OpenSSL::Cipher.ciphers
.
Creates a Digest
instance based on string, which is either the ln (long name) or sn (short name) of a supported digest algorithm.
If data (a String
) is given, it is used as the initial input to the Digest
instance, i.e.
digest = OpenSSL::Digest.new('sha256', 'digestdata')
is equivalent to
digest = OpenSSL::Digest.new('sha256') digest.update('digestdata')
Returns an instance of OpenSSL::HMAC
set with the key and digest algorithm to be used. The instance represents the initial state of the message authentication code before any data has been processed. To process data with it, use the instance method update
with your data as an argument.
key = 'key' instance = OpenSSL::HMAC.new(key, 'SHA1') #=> f42bb0eeb018ebbd4597ae7213711ec60760843f instance.class #=> OpenSSL::HMAC
Two instances can be securely compared with ==
in constant time:
other_instance = OpenSSL::HMAC.new('key', 'SHA1') #=> f42bb0eeb018ebbd4597ae7213711ec60760843f instance == other_instance #=> true
Creates an instance of OpenSSL::Config
from the content of the file specified by filename.
This can be used in contexts like OpenSSL::X509::ExtensionFactory.config=
This can raise IO
exceptions based on the access, or availability of the file. A ConfigError
exception may be raised depending on the validity of the data being configured.