Ruby (programming language)wikipedia
Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.
RubyRuby programming languageRuby,Ruby languageRuby programming language implementationEigenclassRubyObjCOpen classes

Yukihiro Matsumoto

Yukihiro "Matz" MatsumotoYukihiro Matsumoto (Matz)Matz
It was designed and developed in the mid-1990s by Yukihiro "Matz" Matsumoto in Japan.
Yukihiro Matsumoto is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference implementation, Matz's Ruby Interpreter (MRI).

Object-oriented programming

object-orientedobject-oriented programmingobject oriented
reflective, object-oriented, general-purpose programming language. It supports multiple programming paradigms, including functional, object-oriented, and imperative. Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
Ruby,

Ruby on Rails

RailsRubyRuby on Rails
Around 2005, interest in the Ruby language surged in tandem with Ruby on Rails, a web framework written in Ruby.
Ruby on Rails, or Rails, is a server-side web application framework written in Ruby under the MIT License.

Programming Ruby

In September 2000, the first English language book Programming Ruby was printed, which was later freely released to the public, further widening the adoption of Ruby amongst English speakers.
Programming Ruby is a book about the Ruby programming language by Dave Thomas and Andrew Hunt, authors of The Pragmatic Programmer.

Interpreted language

interpreted languageinterpretedinterpreted programming language
Ruby is a dynamic, interpreted,

Programming paradigm

multi-paradigmprogramming paradigmmulti-paradigm programming language
It supports multiple programming paradigms, including functional, object-oriented, and imperative. Ruby has been described as a multi-paradigm programming language: it allows procedural programming (defining functions/variables outside classes makes them part of the root, 'self' Object), with object orientation (everything is an object) or functional programming (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation).
Some languages are designed to support one paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, Java, C#, Scala, Visual Basic, Common Lisp, Scheme, Perl, PHP, Python, Ruby, Oz, and F#).

Smalltalk

SmalltalkXerox Smalltalk
According to the creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp.
Virtually all of the object-oriented languages that came after—Flavors, CLOS, Objective-C, Java, Python, Ruby, and many others—were influenced by Smalltalk.

RubyGems

gemRubyGemRuby gems
RubyGems is Ruby's package manager.
RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries (in a self-contained format called a "gem"), a tool designed to easily manage the installation of gems, and a server for distributing them.

Anonymous function

anonymous functionlambda expressionlambda expressions
Ruby has been described as a multi-paradigm programming language: it allows procedural programming (defining functions/variables outside classes makes them part of the root, 'self' Object), with object orientation (everything is an object) or functional programming (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation).
Second, the languages that treat functions as first-class functions (Dylan, Haskell, JavaScript, Lisp, ML, Perl, Python, Ruby, Scheme) generally have anonymous function support so that functions can be defined and passed around as easily as other data types.

Class (computer programming)

classclassesanonymous class
Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
In some languages, such as Python, Ruby or Smalltalk, a class is also an object; thus each class is an instance of a unique metaclass that is built into the language.

JRuby

JRuby
, there are a number of alternative implementations of Ruby, including JRuby, Rubinius, and mruby.
JRuby is an implementation of the Ruby programming language atop the Java Virtual Machine, written largely in Java.

Ruby MRI

Matz's Ruby InterpreterMatz's Ruby Interpreter (MRI)MRI
The original Ruby interpreter is often referred to as the Matz's Ruby Interpreter or MRI.
Matz's Ruby Interpreter or Ruby MRI (also called CRuby) was the reference implementation of the Ruby programming language named after Ruby creator Yukihiro Matsumoto ("Matz").

Rubinius

, there are a number of alternative implementations of Ruby, including JRuby, Rubinius, and mruby.
Rubinius is an alternative Ruby implementation created by Evan Phoenix.

Dynamic programming language

dynamic programming languagedynamicdynamic language
Ruby is a dynamic, interpreted,
Popular dynamic programming languages include JavaScript, Python, Ruby, PHP, Lua and Perl.

MagLev (software)

MagLev
MagLev is an alternative implementation of the Ruby programming language built on the GemStone/S virtual machine from GemTalk Systems.

IronRuby

IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET framework.

Mruby

mruby
, there are a number of alternative implementations of Ruby, including JRuby, Rubinius, and mruby.
mruby is an interpreter for the Ruby programming language with the intention of being lightweight and easily embeddable.

RubyMotion

RubyMotion is an implementation of the Ruby programming language that runs on iOS, OS X and Android.

MacRuby

MacRuby is a discontinued an implementation of the Ruby language that ran on the Objective-C runtime and CoreFoundation framework under development by Apple Inc. which "was supposed to replace RubyCocoa".

Iterator

iteratoriteratorsIterating
Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
Some object-oriented languages such as C#, C++ (later versions), Delphi (later versions), Go, Java (later versions), Lua, Perl, Python, Ruby provide an intrinsic way of iterating through the elements of a container object without the introduction of an explicit iterator object.

Monkey patch

monkey patchmonkey-patchingmethod swizzling
Adding methods to previously defined classes is often called monkey-patching.
The definition of the term varies depending upon the community using it. In Ruby, Python, and many other dynamic programming languages, the term monkey patch only refers to dynamic modifications of a class or module at runtime, motivated by the intent to patch existing third-party code as a workaround to a bug or feature which does not act as desired.

Safe navigation operator

safe navigation operatoroptional chainingnull-conditional operator
It is currently supported in languages such as Apache Groovy, Swift, Ruby, C#, Kotlin, CoffeeScript and others.

Interactive Ruby Shell

IRB
The following examples can be run in a Ruby shell such as Interactive Ruby Shell, or saved in a file and run from the command line by typing.
Interactive Ruby Shell (IRB or irb) is a REPL for programming in the object-oriented scripting language Ruby.

Exception handling

exception handlingexceptionexceptions
Already present at this stage of development were many of the features familiar in later releases of Ruby, including object-oriented design, classes with inheritance, mixins, iterators, closures, exception handling and garbage collection.
This includes ActionScript, Ada, BlitzMax, C++, C#, COBOL, D, ECMAScript, Eiffel, Java, ML, Object Pascal (e.g. Delphi, Free Pascal, and the like), PowerBuilder, Objective-C, OCaml, PHP (as of version 5), PL/1, PL/SQL, Prolog, Python, REALbasic, Ruby, Scala, Seed7, Smalltalk, Tcl, Visual Prolog and most .NET languages.

Metaprogramming

metaprogrammingmetameta-programming
It has support for introspection, reflection and metaprogramming, as well as support for interpreter-based threads.
If programs are modifiable at runtime or if incremental compilation is available (such as in C#, Forth, Frink, Groovy, JavaScript, Lisp, Elixir, Lua, Perl, PHP, Python, REBOL, Ruby, SAS, Smalltalk, and Tcl), then techniques can be used to perform metaprogramming without actually generating source code.