Tokens where state should be ignored used for :on_comment, :on_heredoc_end, :on_embexpr_end
Used Internally. Wraps a Dependency object to also track which spec contained the Dependency.
A VendorSpecification
represents a gem that has been unpacked into a project and is being loaded through a gem dependencies file through the path:
option.
For detail, see the MSDN.
— HKEY_*
Predefined key ((*handle*)). These are Integer, not Win32::Registry.
— REG_*
Registry value type.
— KEY_*
Security access mask.
— KEY_OPTIONS_*
Key options.
If the key is created newly or opened existing key. See also Registry#disposition method.
Converts Ruby
link flags into something cargo understands
Indicates a problem with the DNS
request.
IO
wrapper that allows writing a limited amount of data
Continuation
objects are generated by Kernel#callcc
, after having +require+d continuation. They hold a return address and execution context, allowing a nonlocal return to the end of the callcc
block from anywhere within a program. Continuations are somewhat analogous to a structured version of C’s setjmp/longjmp
(although they contain more state, so you might consider them closer to threads).
For instance:
require "continuation" arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ] callcc{|cc| $cc = cc} puts(message = arr.shift) $cc.call unless message =~ /Max/
produces:
Freddie Herbie Ron Max
Also you can call callcc in other methods:
require "continuation" def g arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ] cc = callcc { |cc| cc } puts arr.shift return cc, arr.size end def f c, size = g c.call(c) if size > 1 end f
This (somewhat contrived) example allows the inner loop to abandon processing early:
require "continuation" callcc {|cont| for i in 0..4 print "#{i}: " for j in i*5...(i+1)*5 cont.call() if j == 17 printf "%3d", j end end } puts
produces:
0: 0 1 2 3 4 1: 5 6 7 8 9 2: 10 11 12 13 14 3: 15 16
An error class raised when dynamic parts are found while computing a constant path’s full name. For example: Foo::Bar::Baz -> does not raise because all parts of the constant path are simple constants var::Bar::Baz -> raises because the first part of the constant path is a local variable
An error class raised when missing nodes are found while computing a constant path’s full name. For example: Foo:: -> raises because the constant path is missing the last part
Raised to stop the iteration, in particular by Enumerator#next
. It is rescued by Kernel#loop
.
loop do puts "Hello" raise StopIteration puts "World" end puts "Done!"
produces:
Hello Done!
The InstructionSequence
class represents a compiled sequence of instructions for the Virtual Machine used in MRI. Not all implementations of Ruby
may implement this class, and for the implementations that implement it, the methods defined and behavior of the methods can change in any version.
With it, you can get a handle to the instructions that make up a method or a proc, compile strings of Ruby
code down to VM instructions, and disassemble instruction sequences to strings for easy inspection. It is mostly useful if you want to learn how YARV works, but it also lets you control various settings for the Ruby
iseq compiler.
You can find the source for the VM instructions in insns.def
in the Ruby
source.
The instruction sequence results will almost certainly change as Ruby
changes, so example output in this documentation may be different from what you see.
Of course, this class is MRI specific.
Mixin methods for install and update options for Gem::Commands