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 -
Open3
(GitHub): Provides access to stdin, stdout, and stderr when running other programs -
OpenStruct
(GitHub): A class to build custom data structures, similar to aHash
-
OpenURI
(GitHub): An easy-to-use wrapper forURI::HTTP
,URI::HTTPS
, andURI::FTP
-
PrettyPrint
(GitHub): Implements a pretty printing algorithm for readable structure -
PStore
(GitHub): Implements a file-based persistence mechanism based on aHash
-
Readline
(GitHub): Wrapper for theReadline
extension andReline
-
Reline
(GitHub): GNUReadline
and Editline in a pure Ruby implementation -
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 theSingleton
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 thePsych
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 -
IO.console
(GitHub): Extensions for theIO
class, includingIO.console
,IO.winsize
, etc. -
JSON
(GitHub): Implements JavaScriptObject
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 -
StringScanner
(GitHub): Provides lexical scanning operations on aString
-
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 withResolv
-
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