Returns a Kernel#caller
style string representing this frame.
@param [Array<Object>] binding_requirements array of requirements that combine to create a conflict @return [Array<UnwindDetails>] array of UnwindDetails
that have a chance
of resolving the passed requirements
@param [Conflict] conflict @return [Array] minimal array of requirements that would cause the passed
conflict to occur.
@macro action
@return [Set<Vertex>] the vertices of {#graph} where ‘self` is an
{#ancestor?}
@param [Set<Vertex>] vertices the set to add the successors to @return [Set<Vertex>] the vertices of {#graph} where ‘self` is an
{#ancestor?}
Sets up the resolution process @return [void]
@return [Integer] index of state requirement in reversed requirement tree
(the conflicting requirement itself will be at position 0)
The logical inverse of ‘capture_last_end_same_indent`
When there is an invalid block with an ‘end` missing a keyword right after another `end`, it is unclear where which end is missing the keyword.
Take this example:
class Dog # 1 puts "woof" # 2 end # 3 end # 4
the problem line will be identified as:
> end # 4
This happens because lines 1, 2, and 3 are technically valid code and are expanded first, deemed valid, and hidden. We need to un-hide the matching keyword on line 1. Also work backwards and if there’s a mis-matched end, show it too
Ruby expects the dylib to follow a file name convention for loading
Similar to Object#to_enum
, except it returns a lazy enumerator. This makes it easy to define Enumerable
methods that will naturally remain lazy if called from a lazy enumerator.
For example, continuing from the example in Object#to_enum
:
# See Object#to_enum for the definition of repeat r = 1..Float::INFINITY r.repeat(2).first(5) # => [1, 1, 2, 2, 3] r.repeat(2).class # => Enumerator r.repeat(2).map{|n| n ** 2}.first(5) # => endless loop! # works naturally on lazy enumerator: r.lazy.repeat(2).class # => Enumerator::Lazy r.lazy.repeat(2).map{|n| n ** 2}.first(5) # => [1, 1, 4, 4, 9]
Similar to Object#to_enum
, except it returns a lazy enumerator. This makes it easy to define Enumerable
methods that will naturally remain lazy if called from a lazy enumerator.
For example, continuing from the example in Object#to_enum
:
# See Object#to_enum for the definition of repeat r = 1..Float::INFINITY r.repeat(2).first(5) # => [1, 1, 2, 2, 3] r.repeat(2).class # => Enumerator r.repeat(2).map{|n| n ** 2}.first(5) # => endless loop! # works naturally on lazy enumerator: r.lazy.repeat(2).class # => Enumerator::Lazy r.lazy.repeat(2).map{|n| n ** 2}.first(5) # => [1, 1, 4, 4, 9]
Like Enumerable#reject
, but chains operation to be lazy-evaluated.
Like Enumerable#grep
, but chains operation to be lazy-evaluated.
Like Enumerable#grep_v
, but chains operation to be lazy-evaluated.
Returns a Proc
object that takes arguments and yields them.
This method is implemented so that a Yielder
object can be directly passed to another method as a block argument.
enum = Enumerator.new { |y| Dir.glob("*.rb") { |file| File.open(file) { |f| f.each_line(&y) } } }
Return the length of the hash value in bytes.
Return the length of the hash value (the digest) in bytes.
Digest::SHA256.new.digest_length * 8 # => 256 Digest::SHA384.new.digest_length * 8 # => 384 Digest::SHA512.new.digest_length * 8 # => 512
For example, digests produced by Digest::SHA256 will always be 32 bytes (256 bits) in size.
Turn this function in to a proc
Returns the Fiddle::Pointer
of this handle.
Get the underlying pointer for ruby object val
and return it as a Fiddle::Pointer
object.