Ruby is a dynamic, reflective, general purpose, open source programming language that focuses on simplicity and productivity. Ruby has a mixed features of Perl, small talk, Eiffel, Ada and Lisp. Ruby was designed to create a new language which makes a balance with the functionality of Imperative languages.

Ruby is designed and developed by Yukihiro “martz” Matsumoto in mid 1990 in Japan.

Ruby is known as a language of flexibility because it facilitates its author to alter the programming elements. Some specific parts of the language can be removed or redefined. Ruby does not restrict the user. For example, to add two numbers, Ruby allows to use + sign or the word ‘plus’. This alteration can be done with Ruby’s built-in class Numeric.

Ruby has many features. Some of them are listed below.

  • Object-oriented
  • Flexible
  • Dynamic typing and Duck typing
  • Garbage collector
  • Keyword arguments


  • High level language
  • Support multiple platforms
  • Use interactive prompt called irb
  • Server side scripting language


  • Ruby is fully object oriented while Python is not.
  • Ruby supports EclipseIDE while Python supports multiple IDEs.
  • Ruby use Mixins while Python doesn’t.
  • Ruby supports blocks, procs and lambdas while Python doesn’t.

Ruby class libraries contain variety of domain such as thread programming, data types, various domains. Following is a list of domains which has relevant class libraries:

  • Text processing
  • CGI Programming
  • Network programming
  • GUI programming
  • XML programming

Operators are a symbol which is used to perform different operations.

  • Unary operator
  • Airthmetic operator
  • Bitwise operator
  • Logical operator
  • Ternary operator

RubyGems provides a standard format for distributing ruby programs and libraries. It works as a package manager for the Ruby programming language.

RubyGems is now a part of the standard library from Ruby version 1.9.

Ruby variables hold data which can be used later in a program. Each variable act as a memory and shas a different name.

There are four types of variables in Ruby:

  • Local variable
  • Class variable
  • Instance variable
  • Global variable
nil false
nil cannot be a value. false can be a value.
nil is returned where there is no predicate. in case of a predicate, true or false is returned by a method.
nil is not a boolean data type. false is a boolean data type.
nil is an object of nilclass. false is an object of falseclass.

Ruby data types represent type of data such as text, string, numbers, etc.

There are different data types in Ruby:

  • Numbers
  • Strings
  • Symbols
  • Hashes
  • Arrays
  • Booleans

In Ruby, load and require both are used for loading the available code into the current code. In cases where loading the code required every time when changed or every times someone hits the URL, it is suggested to use ‘load’.

It case of autoload, it is suggested to use ‘require’.

The Ruby if-else statement is used to test condition. There are various types of statement in Ruby.

  • if statement
  • if-else statement
  • if-else-if (elsif) statement
  • ternary statement

In Ruby, we use ‘case’ instead of ‘switch’ and ‘when’ instead of ‘case’. The case statement matches one statement with multiple conditions just like a switch statement in other languages.

Ruby for loop iterates over a specific range of numbers. Hence, for loop is used if a program has fixed number of itrerations.

Ruby for loop will execute once for each element in expression.

Ruby while loop is used to iterate a program several times. If the number of iterations is not fixed

for a program, while loop is used.

Ruby do while loop iterates a part of program several times. In this, loop will execute at least once because do while condition is written at the end.

Ruby until loop runs until the given condition evaluates to true. It exits the loop when condition becomes true. It is opposite of the while loop.

Ruby break statement is used to terminate a loop. It is mostly used in while loop where value is printed till the condition is true.

Ruby next statement is used to skip loop’s next iteration. Once the next statement is executed, no further iteration will be performed.

Ruby redo statement is used to repeat the current iteration of the loop. The redo statement is executed without evaluating loop’s condition.

Ruby retry statement is used to repeat the whole loop iteration from the start.

Object is the default root of all Ruby objects. Ruby objects inherit from BasicObject which allows creating alternate object hierarchies.

Objects in Ruby are created by calling new method of the class. It is a unique type of method and predefined in Ruby library.



Each Ruby class is an instance of Ruby class. Classes in Ruby are first class objects. It always starts with a keyword class followed by the class name.


  1. class ClassName
  2. codes…

Ruby method prevent us from writing the same code in a program again and again. Ruby methods are similar to functions in other languages.

To use a Ruby method, we need to first define it. It is defined with def and end keyword.

Method name should always start with a lowercase letter.


  1. def methodName

Ruby code blocks are called closures in other programming languages. It consist of a group of codes which is always enclosed with braces or written between do…end.

A block is written in two ways:

  • Multi-line between do and end
  • Inline between braces {}

Both are same and have the same functionality.


  1. block_name{
  2. statement1
  3. statement2

The yield statement is used to call a block within a method with a value.

The &block is a way to pass a reference (instead of a local variable) to the block to a method.

Here, block word after the & is just a name for the reference, any other name can be used instead of this.

Ruby module is a collection of methods and constants. A module method may be instance method or module method. They are similar to classes as they hold a collection of methods, class definitions, constants and other modules. They are defined like classes. Objects or subclasses can not be created using modules. There is no module hierarchy of inheritance.

Modules basically serve two purposes:

  • They act as namespace. They prevent the name clashes.
  • They allow the mixin facility to share functionality between classes.


  1. module ModuleName
  2. statement1
  3. statement2

Ruby doesn’t support multiple inheritance. Modules eliminate the need of multiple inheritance using mixin in Ruby.

A module doesn’t have instances because it is not a class. However, a module can be included within a class.

When you include a module within a class, the class will have access to the methods of the module.

Ruby string object holds and manipulates an arbitary sequence of bytes, typically representing characters. They are created using String::new or as literals

You can access Ruby string elements in different parts with the help of square brackets []. Within square brackets write the index or string.

Writing multiline string is very simple in Ruby language. We will show three ways to print multiline string.

  • String can be written within double quotes.
  • The % character is used and string is enclosed within / character.
  • In heredoc syntax, we use << and string is enclosed within word STRING.

The global variable is declared in Ruby that you can access it anywhere within the application because it has full scope in the application. The global variables are used in Ruby with $ prepend.

Ruby concatenating string implies creating one string from multiple strings. You can join more than one string to form a single string by concatenating them.

There are four ways to concatenate Ruby strings into single string:

  • Using plus sign in between strings.
  • Using a single space in between strings.
  • Using << sign in between strings.
  • Using concat method in between strings.

In most programming languages strings are immutable. It means that an existing string can’t be modified, only a new string can be created out of them.

In Ruby, by default strings are not immutable. To make them immutable, freeze method can be used.

Ruby strings can be compared with three operators:

  • With == operator : Returns true or false
  • With eql? Operator : Returns true or false
  • With casecmp method : Returns 0 if matched or 1 if not matched

Ruby class libraries contain variety of domain such as thread programming, data types, various domains. Following is a list of domains which has relevant class libraries:

  • Text processing
  • CGI Programming
  • Network programming
  • GUI programming
  • XML programming

Ruby arrays are ordered collections of objects. They can hold objects like integer, number, hash, string, symbol or any other array.

Its indexing starts with 0. The negative index starts with -1 from the end of the array. For example, -1 indicates last element of the array and 0 indicates first element of the array.

A Ruby array is created in many ways.

  • Using literal constructor []
  • Using new class method

Ruby array elements can be added in different ways.

  • push or <<
  • unshift
  • insert

Ruby array elements can be removed in different ways.

  • pop
  • shift
  • delete
  • uniq

A Ruby hash is a collection of unique keys and their values. They are similar to arrays but array use integer as an index and hash use any object type. They are also called associative arrays, dictionaries or maps.

If a hash is accessed with a key that does not exist, the method will return nil.

A new Time instance can be created with ::new. This will use your current system’s time. Parts of time like year, month, day, hour, minute, etc can also be passed.

While creating a new time instance, you need to pass at least a year. If only year is passed, then time will default to January 1 of that year at 00:00:00 with current system time zone.

Ruby range represents a set of values with a beginning and an end. They can be constructed using s..e and s…e literals or with ::new.

The ranges which has .. in them, run from beginning to end inclusively. The ranges which has … in them, run exclusively the end value.

Ruby has a variety of ways to define ranges.

  • Ranges as sequences
  • Ranges as conditions
  • Ranges as intervals

Iterator is a concept used in object-oriented language. Iteration means doing one thing many times like a loop.

The loop method is the simplest iterator. They return all the elements from a collection, one after the other. Arrays and hashes come in the category of collection.

The sysread method is also used to read the content of a file. With the help of this method you can open a file in any mode.

Start the change

Register to become an Instructor

Please login to fill in this form.

  • Your name
  • Your email
  • Your phone number
  • Your message

I’m a Copywriter in a Digital Agency, I was searching for courses that’ll help me broaden my skill set. Before signing up for Rob’s.