The Tuplespace manages access to the tuples it contains, ensuring mutual exclusion requirements are met.
The sec option for the write, take, move, read and notify methods may either be a number of seconds or a Renewer object.
Attributes are in key-value form, and if there’s no value provided for an attribute, a NotAvailableValueError will be raised.
An error that indicates we weren’t able to fetch some data from a source
Signals that a remote operation cannot be conducted, probably due to not being connected (or just not finding host).
The installer installs the files contained in the .gem into the Gem.home.
Gem::Installer does the work of putting files in all the right places on the filesystem including unpacking the gem into its gem dir, installing the gemspec in the specifications dir, storing the cached gem in the cache dir, and installing either wrappers or symlinks for executables.
The installer invokes pre and post install hooks. Hooks can be added either through a rubygems_plugin.rb file in an installed gem or via a rubygems/defaults/#{RUBY_ENGINE}.rb or rubygems/defaults/operating_system.rb file. See Gem.pre_install and Gem.post_install for details.
A test case for Gem::Installer.
This Gem::StreamUI subclass records input and output to StringIO for retrieval during tests.
RemoteFetcher handles the details of fetching gems and gem information from a remote source.
SilentUI is a UI choice that is absolutely silent.
Not a URI.
URI is valid, bad usage is not.
Base server class
exception to wait for reading. see IO.select.
exception to wait for writing. see IO.select.
When using Psych.load to deserialize a YAML document, the document is translated to an intermediary AST. That intermediary AST is then translated in to a Ruby object graph.
In the opposite direction, when using Psych.dump, the Ruby object graph is translated to an intermediary AST which is then converted to a YAML document.
Psych::Nodes contains all of the classes that make up the nodes of a YAML AST. You can manually build an AST and use one of the visitors (see Psych::Visitors) to convert that AST to either a YAML document or to a Ruby object graph.
Here is an example of building an AST that represents a list with one scalar:
# Create our nodes stream = Psych::Nodes::Stream.new doc = Psych::Nodes::Document.new seq = Psych::Nodes::Sequence.new scalar = Psych::Nodes::Scalar.new('foo') # Build up our tree stream.children << doc doc.children << seq seq.children << scalar
The stream is the root of the tree. We can then convert the tree to YAML:
stream.to_yaml => "---\n- foo\n"
Or convert it to Ruby:
stream.to_ruby => [["foo"]]
A valid YAML AST must have one Psych::Nodes::Stream at the root. A Psych::Nodes::Stream node must have 1 or more Psych::Nodes::Document nodes as children.
Psych::Nodes::Document nodes must have one and only one child. That child may be one of:
Psych::Nodes::Sequence and Psych::Nodes::Mapping nodes may have many children, but Psych::Nodes::Mapping nodes should have an even number of children.
All of these are valid children for Psych::Nodes::Sequence and Psych::Nodes::Mapping nodes:
Psych::Nodes::Scalar and Psych::Nodes::Alias are both terminal nodes and should not have any children.
The GC profiler provides access to information on GC runs including time, length and object space size.
Example:
GC::Profiler.enable require 'rdoc/rdoc' GC::Profiler.report GC::Profiler.disable
See also GC.count, GC.malloc_allocated_size and GC.malloc_allocations