Ruby Interview Questions
A list of frequently asked Ruby or Ruby On Rails interview questions and answers are given below.
1) What is Ruby programming language?
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.
For more information: Click here
2) Who is the developer of Ruby?
Ruby is designed and developed by Yukihiro “martz” Matsumoto in mid 1990 in Japan.
For more information: Click here
3) Why Ruby is known as a language of flexibility?
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.
4) List some features of Ruby?
Ruby has many features. Some of them are listed below.
- Object-oriented
- Flexible
- Dynamic typing and Duck typing
- Garbage collector
- Keyword arguments
For more information: Click here
5) Explain some differences between Ruby and Python.
Similarities:
- High level language
- Support multiple platforms
- Use interactive prompt called irb
- Server side scripting language
Differences:
- 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.
For more information: Click here
6) Write the command to get installed Ruby version in your system.
ruby -v
For more information: Click here
7) What are class libraries in Ruby?
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
8) Name some operators used in Ruby.
Operators are a symbol which is used to perform different operations.
- Unary operator
- Airthmetic operator
- Bitwise operator
- Logical operator
- Ternary operator
For more information: Click here
9) What is RubyGems in Ruby programming language?
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.
10) What are Ruby variables.
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
For more information: Click here
11) What is the difference between nil and false in Ruby?
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. |
12) Explain Ruby data types.
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
For more information: Click here
13) What is the use of load and require in Ruby?
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’.
14) Explain Ruby if-else statement.
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
For more information: Click here
15) Explain case statement in Ruby.
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.
For more information: Click here
16) Explain for loop in Ruby.
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.
For more information: Click here
17) Explain while loop in Ruby.
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.
For more information: Click here
18) Explain do while loop in Ruby.
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.
For more information: Click here
19) Explain until loop in Ruby.
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.
For more information: Click here
20) Explain break statement in Ruby.
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.
For more information: Click here
21) Explain next statement in Ruby.
Ruby next statement is used to skip loop’s next iteration. Once the next statement is executed, no further iteration will be performed.
For more information: Click here
22) Explain redo statement in Ruby.
Ruby redo statement is used to repeat the current iteration of the loop. The redo statement is executed without evaluating loop’s condition.
For more information: Click here
23) Explain retry statement in Ruby.
Ruby retry statement is used to repeat the whole loop iteration from the start.
For more information: Click here
24) How will you comment in Ruby.
Ruby comments are non-executable lines in a program. They do not take part in the execution of a program.
Single line comment syntax:
Multi line comment syntax:
For more information: Click here
25) Explain Ruby object.
Object is the default root of all Ruby objects. Ruby objects inherit from BasicObject which allows creating alternate object hierarchies.
For more information: Click here
26) How to create Ruby object?
Objects in Ruby are created by calling new method of the class. It is a unique type of method and predefined in Ruby library.
Syntax:
For more information: Click here
27) Explain Ruby class.
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.
Syntax:
For more information: Click here
28) Define Ruby methods.
Ruby method prevent us from writing the same code in a program again and again. Ruby methods are similar to functions in other languages.
For more information: Click here
29) How to use Ruby methods.
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.
Syntax:
For more information: Click here
30) What are Ruby blocks.
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.
For more information: Click here
31) In how many ways a block is written in Ruby.
A block is written in two ways:
- Multi-line between do and end
- Inline between braces {}
Both are same and have the same functionality.
For more information: Click here
syntax:
For more information: Click here
32) What is yield statement in Ruby.
The yield statement is used to call a block within a method with a value.
For more information: Click here
33) Explain ampersand parameter (█) in Ruby.
The █ 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.
For more information: Click here
34) Explain Ruby module.
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.
Syntax:
Module name should start with a capital letter.
For more information: Click here
35) Explain module mixins in Ruby.
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.
For more information: Click here
36) Explain Ruby strings.
Ruby string object holds and manipulates an arbitary sequence of bytes, typically representing characters. They are created using String::new or as literals.
For more information: Click here
37) How to access Ruby strings elements in an application.
You can access Ruby string elements in different parts with the help of square brackets []. Within square brackets write the index or string.
For more information: Click here
38) How to write multiline string in Ruby.
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.
For more information: Click here
39) What is the use of global variable $ in Ruby?
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.
40) What is concatenating string in Ruby. In how many ways you can create a concatenating string.
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.
For more information: Click here
41) What are freezing string in Ruby.
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.
For more information: Click here
42) In how many ways you can compare Ruby string?
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
For more information: Click here
43) What are class libraries in Ruby?
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
44) What are Ruby arrays and how they can be created?
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
For more information: Click here
45) How to access Ruby array elements? How many methods are used to access Ruby elements.?
Ruby array elements can be accessed using #[] method. You can pass one or more than one arguments or even a range of arguments.
Syntax:
Methods used to access Ruby elements:
- at method
- slice method
- fetch method
- first and last method
- take method
- drop method
For more information: Click here
46) In how many ways items can be added in an array in Ruby?
Ruby array elements can be added in different ways.
- push or <<
- unshift
- insert
For more information: Click here
47) In how many ways items can be removed from array in Ruby?
Ruby array elements can be removed in different ways.
- pop
- shift
- delete
- uniq
For more information: Click here
48) Explain Ruby hashes.
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.
For more information: Click here
49) How to create a new time instance in Ruby?
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.
For more information: Click here
50) Explain Ruby ranges. What are the ways to define ranges?
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
For more information: Click here
51) What are Ruby iterators?
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.
For more information: Click here
52) How many iterators are there in Ruby?
Following iterators are there in Ruby:
- each iterator
- times iterator
- upto and downto iterator
- step iterator
- each_line iterator
For more information: Click here
53) Name different methods for IO console in Ruby?
The IO console provides different methods to interact with console. The class IO provides following basic methods:
- IO::console
- IO#raw#raw!
- IO#cooked
- IO#cooked!
- IO#getch
For more information: Click here
54) How to open a file in Ruby?
A Ruby file can be created using different methods for reading, writing or both.
There are two methods to open a file in Ruby.
- File.new method : Using this method a new file can be created for reading, writing or both.
- File.open method : Using this method a new file object is created. That file object is assigned to a file.
Difference between both the methods is that File.open method can be associated with a block while File.new method can’t.
Syntax:
Or,
For more information: Click here
55) How to read a file in Ruby?
There are three different methods to read a file.
To return a single line, following syntax is used.
Syntax:
To return the whole file after the current position, following syntax is used.
Syntax:
To return file as an array of lines, following syntax is used.
Syntax:
56) Explain class libraries in Ruby.
Ruby class libraries contain a variety of domains like thread programming, data types, and various domains. It has additional libraries evolving day by day. The following are the domains which has relevant class libraries.
- Text processing: File, String, Regexp for quick and clean text processing.
- CGI Programming: There are supporting class library for CGI programming support like, data base interface, eRuby, mod_ruby for Apache, text processing classes.
- Network programming: Various well-designed sockets are available in ruby for network programming.
- GUI programming: Ruby/Tk and Ruby/Gtk are the classes for GUI programming
- XML programming: UTF-8 text processing regular expression engine make XML programming very handy in ruby.
57) What is sysread method in Ruby?
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.
For more information: Click here
58) How will you rename and delete a file in Ruby?
Ruby files are renamed using rename method and deleted using delete mehtod.
To rename a file, following syntax is used.
Syntax:
To delete a file, following syntax is used.
Syntax:
For more information: Click here
59) How to check whether a directory exist or not in Ruby?
To check whether a directory exists or not exists? Method is used.
Syntax:
For more information: Click here
60) Explain Ruby exceptions.
Ruby exception is an object, an instance of the class Exception or descendent of that class. When something goes wrong, Ruby program throws an exceptional behavior. By default Ruby program terminates on throwing an exception.
For more information: Click here
61) What are some built-in Ruby class exceptions.
Built-in subclasses of exception are as follows:
- NoMemoryError
- ScriptError
- SecurityError
- SignalException
For more information: Click here
62) How an exception is handled in Ruby?
To handle exception, the code that raises exception is enclosed within begin-end block. Using rescue clauses we can state type of exceptions we want to handle.
For more information: Click here
63) Explain the use of retry statement in Ruby?
Usaually in a rescue clause, the exception is captured and code resumes after begin block. Using retry statement, the rescue block code can be resumed from begin after capturing an exception.
Syntax:
For more information: Click here
64) Explain raise statement in Ruby?
The raise statement is used to raise an exception.
Syntax:
Or,
Or,
Or,
For more information: Click here
65) Explain the use of ensure statement in Ruby?
There is an ensure clause which guarantees some processing at the end of code. The ensure block always run whether an exception is raised or not. It is placed after last rescue clause and will always executed as the block terminates.
The ensure block will run at any case whether an exception arises, exception is rescued or code is terminated by uncaught exception.
Syntax:
For more information: Click here