Ruby Standard Library¶ ↑
The Ruby Standard Library is a large collection of classes and modules you can require in your code to gain additional features.
Below is an overview of the libraries and extensions, followed by a brief description of each.
Libraries¶ ↑
-
MakeMakefile
: A module used to generate a Makefile for C extensions -
RbConfig
: Information about your Ruby configuration and build -
Gem
: A package management framework for Ruby
Extensions¶ ↑
-
Coverage
: Provides coverage measurement for Ruby -
Monitor
: Provides a reentrant mutex -
objspace
: Extends theObjectSpace
module to add methods for internal statistics -
PTY
: Creates and manages pseudo-terminals -
Ripper
: Provides an interface for parsing Ruby programs into S-expressions -
Socket
: Accesses underlying OS socket implementations
Default gems¶ ↑
-
Default gems are shipped with Ruby releases and also available as rubygems.
-
Default gems are not uninstallable from the Ruby installation.
-
Default gems can be updated using rubygems.
-
e.g.
gem update json
-
-
Default gems can be used with bundler environments like
unbundled_env
. -
Default gems can be used at any version in a Gemfile.
-
e.g.
gem "json", ">= 2.6"
-
Libraries¶ ↑
-
Benchmark (GitHub): Provides methods to measure and report the time used to execute code
-
Bundler (GitHub): Manage your Ruby application’s gem dependencies
-
CGI (GitHub): Support for the Common Gateway Interface protocol
-
Delegator (GitHub): Provides three abilities to delegate method calls to an object
-
DidYouMean (GitHub): “Did you mean?” experience in Ruby
-
English (GitHub): Provides references to special global variables with less cryptic names
-
ERB (GitHub): An easy-to-use but powerful templating system for Ruby
-
ErrorHighlight (GitHub): Highlight error locations in your code
-
FileUtils (GitHub): Several file utility methods for copying, moving, removing, etc.
-
Find (GitHub): This module supports top-down traversal of a set of file paths
-
Forwardable (GitHub): Provides delegation of specified methods to a designated object
-
IPAddr (GitHub): Provides methods to manipulate IPv4 and IPv6 IP addresses
-
OptionParser (GitHub): Ruby-oriented class for command-line option analysis
-
Logger (GitHub): Provides a simple logging utility for outputting messages
-
Net::HTTP (GitHub): HTTP client API for Ruby
-
Open3 (GitHub): Provides access to stdin, stdout, and stderr when running other programs
-
OpenStruct (GitHub): A class to build custom data structures, similar to a
Hash
-
OpenURI (GitHub): An easy-to-use wrapper for URI::HTTP, URI::HTTPS, and URI::FTP
-
PP (GitHub): Provides a PrettyPrinter for Ruby objects
-
PrettyPrint (GitHub): Implements a pretty printing algorithm for readable structure
-
Prism (GitHub): A portable, error-tolerant Ruby parser
-
PStore (GitHub): Implements a file-based persistence mechanism based on a
Hash
-
Readline (GitHub): Wrapper for the Readline extension and Reline
-
Reline (GitHub): GNU Readline and Editline in a pure Ruby implementation
-
Resolv (GitHub): Thread-aware DNS resolver library in Ruby
-
SecureRandom (GitHub): Interface for a secure random number generator
-
Set (GitHub): Provides a class to deal with collections of unordered, unique values
-
Shellwords (GitHub): Manipulates strings with the word parsing rules of the UNIX Bourne shell
-
Singleton (GitHub): Implementation of the Singleton pattern for Ruby
-
Tempfile (GitHub): A utility class for managing temporary files
-
Time
(GitHub): Extends theTime
class with methods for parsing and conversion -
Timeout (GitHub): Auto-terminate potentially long-running operations in Ruby
-
TSort (GitHub): Topological sorting using Tarjan’s algorithm
-
UN (GitHub): Utilities to replace common UNIX commands
-
URI (GitHub): A Ruby module providing support for Uniform Resource Identifiers
-
YAML (GitHub): The Ruby client library for the Psych YAML implementation
-
WeakRef (GitHub): Allows a referenced object to be garbage-collected
Extensions¶ ↑
-
Date (GitHub): Represents dates, with a subclass for dates with time and timezones
-
Digest (GitHub): Provides a framework for message digest libraries
-
Etc (GitHub): Provides access to information typically stored in the UNIX /etc directory
-
Fcntl (GitHub): Loads constants defined in the OS fcntl.h C header file
-
Fiddle (GitHub): A libffi wrapper for Ruby
-
IO.console (GitHub): Extensions for the
IO
class, includingIO.console
,IO.winsize
, etc. -
JSON (GitHub): Implements JavaScript
Object
Notation for Ruby -
OpenSSL (GitHub): Provides SSL, TLS, and general-purpose cryptography for Ruby
-
Pathname (GitHub): Representation of the name of a file or directory on the filesystem
-
Psych (GitHub): A YAML parser and emitter for Ruby
-
StringScanner (GitHub): Provides lexical scanning operations on a
String
-
TmpDir (GitHub): Extends the
Dir
class to manage the OS temporary file path -
WIN32OLE (GitHub): Provides an interface for OLE Automation in Ruby
-
Zlib (GitHub): Ruby interface for the zlib compression/decompression library
Tools¶ ↑
Bundled gems¶ ↑
-
Bundled gems are shipped with Ruby releases and also available as rubygems.
-
They are only bundled with Ruby releases.
-
They can be uninstalled from the Ruby installation.
-
They need to be declared in a Gemfile when used with bundler.
-
Libraries¶ ↑
-
minitest: A test library supporting TDD, BDD, mocking, and benchmarking
-
power_assert: Power Assert for Ruby
-
rake: Ruby build program with capabilities similar to make
-
test-unit: A compatibility layer for MiniTest
-
rexml: An XML toolkit for Ruby
-
rss: A family of libraries supporting various XML-based “feeds”
-
net-imap: Ruby client API for the Internet Message Access Protocol
-
net-pop: Ruby client library for POP3
-
net-smtp: Simple Mail Transfer Protocol client library for Ruby
-
matrix: Represents a mathematical matrix
-
prime: Prime numbers and factorization library
-
rbs: RBS is a language to describe the structure of Ruby programs
-
typeprof: A type analysis tool for Ruby code based on abstract interpretation
-
debug: Debugging functionality for Ruby
-
racc: A LALR(1) parser generator written in Ruby
-
mutex_m: Mixin to extend objects to be handled like a Mutex
-
getoptlong: Parse command line options similar to the GNU C getopt_long()
-
base64: Support for encoding and decoding binary data using a Base64 representation
-
bigdecimal: Provides arbitrary-precision floating point decimal arithmetic
-
observer: Provides a mechanism for the publish/subscribe pattern in Ruby
-
abbrev: Calculates a set of unique abbreviations for a given set of strings
-
resolv-replace: Replace Socket DNS with Resolv
-
rinda: The Linda distributed computing paradigm in Ruby
-
drb: Distributed object system for Ruby
-
nkf: Ruby extension for the Network Kanji Filter
-
syslog: Ruby interface for the POSIX system logging facility
-
csv: Provides an interface to read and write CSV files and data