2013-02-05 00:20:23 +04:00
|
|
|
= Ruby Standard Library
|
|
|
|
|
|
|
|
The Ruby Standard Library is a vast collection of classes and modules that you
|
|
|
|
can require in your code for additional features.
|
|
|
|
|
|
|
|
Below is an overview of libraries and extensions followed by a brief
|
|
|
|
description.
|
|
|
|
|
|
|
|
== Libraries
|
|
|
|
|
|
|
|
MakeMakefile:: Module used to generate a Makefile for C extensions
|
|
|
|
RbConfig:: Information of your configure and build of Ruby
|
|
|
|
Gem:: Package management framework for Ruby
|
|
|
|
|
|
|
|
== Extensions
|
|
|
|
|
|
|
|
Coverage:: Provides coverage measurement for Ruby
|
2020-02-11 08:14:58 +03:00
|
|
|
Monitor:: Provides an object or module to use safely by more than one thread
|
2013-02-05 00:20:23 +04:00
|
|
|
objspace:: Extends ObjectSpace 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:: Access underlying OS socket implementations
|
2017-02-09 13:49:08 +03:00
|
|
|
|
|
|
|
= Default gems
|
|
|
|
|
2023-02-07 11:29:19 +03:00
|
|
|
* default gems are shipped with Ruby releases and also available as rubygems.
|
|
|
|
* default gems are not uninstallable from Ruby installation.
|
|
|
|
* default gems can be updated used by rubygems.
|
|
|
|
* e.g. `gem update json`
|
2023-02-18 08:49:19 +03:00
|
|
|
* default gems can be used with bundler environment like `unbundled_env`.
|
2023-02-07 11:29:19 +03:00
|
|
|
* default gems can be used any version on Gemfile.
|
|
|
|
* e.g. `gem "json", ">= 2.6"`
|
|
|
|
|
2017-02-09 13:49:08 +03:00
|
|
|
== Libraries
|
|
|
|
|
2019-11-07 07:53:05 +03:00
|
|
|
Benchmark:: Provides methods to measure and report the time used to execute code
|
2017-12-01 07:25:32 +03:00
|
|
|
Bundler:: Manage your Ruby application's gem dependencies
|
2019-11-07 10:34:03 +03:00
|
|
|
CGI:: Support for the Common Gateway Interface protocol
|
2019-11-07 07:21:46 +03:00
|
|
|
Delegator:: Provides three abilities to delegate method calls to an object
|
2019-10-29 17:08:37 +03:00
|
|
|
DidYouMean:: "Did you mean?" experience in Ruby
|
2020-10-31 05:05:42 +03:00
|
|
|
English:: Provides references to special global variables with less cryptic names
|
2020-08-21 14:18:44 +03:00
|
|
|
ERB:: An easy to use but powerful templating system for Ruby
|
2022-06-21 14:41:05 +03:00
|
|
|
ErrorHighlight:: Highlight error location in your code
|
2017-02-09 13:49:08 +03:00
|
|
|
FileUtils:: Several file utility methods for copying, moving, removing, etc
|
2020-08-20 15:00:48 +03:00
|
|
|
Find:: This module supports top-down traversal of a set of file paths
|
2018-07-25 15:31:58 +03:00
|
|
|
Forwardable:: Provides delegation of specified methods to a designated object
|
2018-08-10 09:06:32 +03:00
|
|
|
IPAddr:: Provides methods to manipulate IPv4 and IPv6 IP addresses
|
2018-07-09 17:01:05 +03:00
|
|
|
IRB:: Interactive Ruby command-line tool for REPL (Read Eval Print Loop)
|
2020-07-22 12:38:51 +03:00
|
|
|
OptionParser:: Ruby-oriented class for command-line option analysis
|
2018-06-02 16:57:48 +03:00
|
|
|
Logger:: Provides a simple logging utility for outputting messages
|
2020-02-21 15:23:16 +03:00
|
|
|
Net::HTTP:: HTTP client api for Ruby
|
2019-11-06 16:17:03 +03:00
|
|
|
Open3:: Provides access to stdin, stdout and stderr when running other programs
|
2018-06-07 13:13:00 +03:00
|
|
|
OpenStruct:: Class to build custom data structures, similar to a Hash
|
2020-09-11 14:38:18 +03:00
|
|
|
OpenURI:: An easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP
|
2020-10-06 14:45:06 +03:00
|
|
|
PP:: Provides a PrettyPrinter for Ruby objects
|
2020-10-06 15:05:03 +03:00
|
|
|
PrettyPrinter:: Implements a pretty printing algorithm for readable structure
|
2023-11-01 21:58:50 +03:00
|
|
|
Prism:: A portable, error-tolerant Ruby parser
|
2019-11-07 05:17:12 +03:00
|
|
|
PStore:: Implements a file based persistence mechanism based on a Hash
|
2022-06-21 14:43:42 +03:00
|
|
|
Readline:: Wrapper for Readline extencion and Reline
|
2022-06-21 14:38:42 +03:00
|
|
|
Reline:: GNU Readline and Editline by pure Ruby implementation.
|
2020-09-11 15:50:07 +03:00
|
|
|
Resolv:: Thread-aware DNS resolver library in Ruby
|
2017-02-09 13:49:08 +03:00
|
|
|
RDoc:: Produces HTML and command-line documentation for Ruby
|
2020-09-11 15:15:25 +03:00
|
|
|
SecureRandom:: Interface for secure random number generator
|
2020-08-20 06:39:11 +03:00
|
|
|
Set:: Provides a class to deal with collections of unordered, unique values
|
2020-09-10 09:42:23 +03:00
|
|
|
Shellwords:: Manipulates strings with word parsing rules of UNIX Bourne shell
|
2019-11-06 05:29:51 +03:00
|
|
|
Singleton:: Implementation of the Singleton pattern for Ruby
|
2020-02-12 13:47:31 +03:00
|
|
|
Tempfile:: A utility class for managing temporary files
|
2020-09-12 02:29:06 +03:00
|
|
|
Time:: Extends the Time class with methods for parsing and conversion
|
2019-11-08 13:21:47 +03:00
|
|
|
Timeout:: Auto-terminate potentially long-running operations in Ruby
|
2020-02-12 14:34:08 +03:00
|
|
|
tmpdir.rb:: Extends the Dir class to manage the OS temporary file path
|
2020-09-09 15:53:09 +03:00
|
|
|
TSort:: Topological sorting using Tarjan's algorithm
|
2020-11-05 14:21:02 +03:00
|
|
|
un.rb:: Utilities to replace common UNIX commands
|
2019-11-11 16:17:50 +03:00
|
|
|
URI:: A Ruby module providing support for Uniform Resource Identifiers
|
2019-11-08 14:18:08 +03:00
|
|
|
YAML:: Ruby client library for the Psych YAML implementation
|
2020-02-11 08:10:49 +03:00
|
|
|
WeakRef:: Allows a referenced object to be garbage-collected
|
2017-02-09 13:49:08 +03:00
|
|
|
|
|
|
|
== Extensions
|
|
|
|
|
|
|
|
Date:: A subclass of Object includes Comparable module for handling dates
|
|
|
|
DateTime:: Subclass of Date to handling dates, hours, minutes, seconds, offsets
|
2020-12-22 14:55:35 +03:00
|
|
|
Digest:: Provides a framework for message digest libraries
|
2017-02-27 12:20:39 +03:00
|
|
|
Etc:: Provides access to information typically stored in UNIX /etc directory
|
2017-02-10 12:41:15 +03:00
|
|
|
Fcntl:: Loads constants defined in the OS fcntl.h C header file
|
2017-04-06 04:47:45 +03:00
|
|
|
Fiddle:: A libffi wrapper for Ruby
|
2020-07-30 15:21:08 +03:00
|
|
|
IO:: Extensions for Ruby IO class, including #wait, #nonblock and ::console
|
2017-02-09 13:49:08 +03:00
|
|
|
JSON:: Implements Javascript Object Notation for Ruby
|
|
|
|
OpenSSL:: Provides SSL, TLS and general purpose cryptography for Ruby
|
2020-12-22 14:55:35 +03:00
|
|
|
Pathname:: Representation of the name of a file or directory on the filesystem
|
2017-02-09 13:49:08 +03:00
|
|
|
Psych:: A YAML parser and emitter for Ruby
|
2017-04-06 04:47:45 +03:00
|
|
|
StringIO:: Pseudo I/O on String objects
|
2017-02-09 13:49:08 +03:00
|
|
|
StringScanner:: Provides lexical scanning operations on a String
|
2020-10-30 08:34:25 +03:00
|
|
|
WIN32OLE:: Provides an interface for OLE Automation in Ruby
|
2013-02-05 00:20:23 +04:00
|
|
|
Zlib:: Ruby interface for the zlib compression/decompression library
|
2017-02-09 14:26:21 +03:00
|
|
|
|
|
|
|
= Bundled gems
|
|
|
|
|
2023-02-07 11:29:19 +03:00
|
|
|
* bundled gems are shipped with Ruby releases and also available as rubygems.
|
|
|
|
* bundled gems are same as normal gems like `rails`, `rack`.
|
|
|
|
* They are only bundled with Ruby releases.
|
|
|
|
* They can be uninstallable from Ruby installation.
|
|
|
|
* They are needed to declare in Gemfile when use with bundler.
|
|
|
|
|
2017-02-09 14:26:21 +03:00
|
|
|
== Libraries
|
|
|
|
|
|
|
|
MiniTest:: A test suite with TDD, BDD, mocking and benchmarking
|
|
|
|
PowerAssert:: Power Assert for Ruby.
|
|
|
|
Rake:: Ruby build program with capabilities similar to make
|
|
|
|
Test::Unit:: A compatibility layer for MiniTest
|
2020-01-11 15:37:00 +03:00
|
|
|
REXML:: An XML toolkit for Ruby
|
2020-01-11 15:48:06 +03:00
|
|
|
RSS:: Family of libraries that support various formats of XML "feeds"
|
2021-05-26 09:44:27 +03:00
|
|
|
Net::FTP:: Support for the File Transfer Protocol
|
2021-05-26 09:48:36 +03:00
|
|
|
Net::IMAP:: Ruby client api for Internet Message Access Protocol
|
2021-05-26 09:52:29 +03:00
|
|
|
Net::POP3:: Ruby client library for POP3
|
2021-05-26 09:58:26 +03:00
|
|
|
Net::SMTP:: Simple Mail Transfer Protocol client library for Ruby
|
2021-05-26 09:36:16 +03:00
|
|
|
Matrix:: Represents a mathematical matrix.
|
2021-05-26 09:33:42 +03:00
|
|
|
Prime:: Prime numbers and factorization library
|
2020-10-20 15:33:02 +03:00
|
|
|
RBS:: RBS is a language to describe the structure of Ruby programs
|
|
|
|
TypeProf:: A type analysis tool for Ruby code based on abstract interpretation
|
2022-06-06 12:19:15 +03:00
|
|
|
DEBUGGER__:: Debugging functionality for Ruby
|
2023-06-20 07:33:49 +03:00
|
|
|
Racc:: A LALR(1) parser generator written in Ruby.
|
2024-01-09 10:33:30 +03:00
|
|
|
Mutex_m:: Mixin to extend objects to be handled like a Mutex
|
2024-01-11 10:34:58 +03:00
|
|
|
GetoptLong:: Parse command line options similar to the GNU C getopt_long()
|
2024-01-11 05:33:40 +03:00
|
|
|
Base64:: Support for encoding and decoding binary data using a Base64 representation
|
2024-01-17 04:00:27 +03:00
|
|
|
BigDecimal:: Provides arbitrary-precision floating point decimal arithmetic
|
2024-01-19 08:02:44 +03:00
|
|
|
Observable:: Provides a mechanism for publish/subscribe pattern in Ruby
|
2024-01-19 09:43:08 +03:00
|
|
|
Abbrev:: Calculates a set of unique abbreviations for a given set of strings
|
2024-01-19 10:32:44 +03:00
|
|
|
resolv-replace.rb:: Replace Socket DNS with Resolv
|
2024-01-19 12:12:31 +03:00
|
|
|
Rinda:: The Linda distributed computing paradigm in Ruby
|
2024-01-22 04:11:34 +03:00
|
|
|
DRb:: Distributed object system for Ruby
|
2024-01-22 06:34:54 +03:00
|
|
|
NKF:: Ruby extension for Network Kanji Filter
|
2024-01-22 09:26:08 +03:00
|
|
|
Syslog:: Ruby interface for the POSIX system logging facility
|
2024-01-22 11:24:16 +03:00
|
|
|
CSV:: Provides an interface to read and write CSV files and data
|