Here we have mentioned most frequently asked Ruby Interview Questions and Answers specially for freshers and experienced.


 

1. What is Ruby programming language?

Ans:

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.

2. Who is the developer of Ruby?

Ans:

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

3. Why Ruby is known as a language of flexibility?

Ans:

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?

Ans:

Ruby has many features. Some of them are listed below.
Object-oriented
Flexible
Dynamic typing and Duck typing
Garbage collector
Keyword arguments

5. Explain some differences between Ruby and Python.

Ans:

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.

6. Write the command to get installed Ruby version in your system.

Ans:

ruby -v

7. What are class libraries in Ruby?

Ans:

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.

Ans:

Operators are a symbol which is used to perform different operations.
Unary operator
Airthmetic operator
Bitwise operator
Logical operator
Ternary operator

9. What is RubyGems in Ruby programming language?

Ans:

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.

Ans:

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



 

11. What is the difference between nil and false in Ruby?

Ans:

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.

Ans:

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

13. What is the use of load and require in Ruby?

Ans:

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.

Ans:

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

15. Explain case statement in Ruby.

Ans:

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.

16. Explain for loop in Ruby.

Ans:

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.

17. Explain while loop in Ruby.

Ans:

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.

18. Explain do while loop in Ruby.

Ans:

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.

19. Explain until loop in Ruby.

Ans:

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.

20. Explain break statement in Ruby.

Ans:

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.




 

21. Explain next statement in Ruby.

Ans:

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

22. Explain redo statement in Ruby.

Ans:

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

23. Explain retry statement in Ruby.

Ans:

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

24. How will you comment in Ruby.

Ans:

Ruby comments are non-executable lines in a program. They do not take part in the execution of a program.

25. Explain Ruby object.

Ans:

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

26. How to create Ruby object?

Ans:

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

27. Explain Ruby class.

Ans:

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.

28. Define Ruby methods.

Ans:

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

29. How to use Ruby methods.

Ans:

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.

30. What are Ruby blocks.

Ans:

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.


 

31. In how many ways a block is written in Ruby.

Ans:

A block is written in two ways:
Multi-line between do and end
Inline between braces {}
Both are same and have the same functionality.

32. What is yield statement in Ruby.

Ans:

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

33. Explain ampersand parameter (&block) in Ruby.

Ans:

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.

34. Explain Ruby module.

Ans:

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.

35. Explain module mixins in Ruby.

Ans:

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.

36. Explain Ruby strings.

Ans:

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

37. How to access Ruby strings elements in an application.

Ans:

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

38. How to write multiline string in Ruby.

Ans:

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.

39. What is the use of global variable $ in Ruby?

Ans:

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.

Ans:

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.



 

41. What are freezing string in Ruby.

Ans:

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.

42. In how many ways you can compare Ruby string?

Ans:

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

43. What are class libraries in Ruby?

Ans:

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?

Ans:

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

45. How to access Ruby array elements? How many methods are used to access Ruby elements.?

Ans:

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

46. In how many ways items can be added in an array in Ruby?

Ans:

Ruby array elements can be added in different ways.
push or <<
unshift
insert

47. In how many ways items can be removed from array in Ruby?

Ans:

Ruby array elements can be removed in different ways.
pop
shift
delete
uniq

48. Explain Ruby hashes.

Ans:

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.

49. How to create a new time instance in Ruby?

Ans:

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.

50. Explain Ruby ranges. What are the ways to define ranges?

Ans:

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




 

51. What are Ruby iterators?

Ans:

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.

52. How many iterators are there in Ruby?

Ans:

Following iterators are there in Ruby:
each iterator
times iterator
upto and downto iterator
step iterator
each_line iterator

53. Name different methods for IO console in Ruby?

Ans:

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

54. How to open a file in Ruby?

Ans:

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.

55. How to read a file in Ruby?

Ans:

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.

56. Explain class libraries in Ruby.

Ans:

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?

Ans:

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.

58. How will you rename and delete a file in Ruby?

Ans:

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.

59. How to check whether a directory exist or not in Ruby?

Ans:

To check whether a directory exists or not exists? Method is used.

60. Explain Ruby exceptions.

Ans:

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.


 

61. What are some built-in Ruby class exceptions.

Ans:

Built-in subclasses of exception are as follows:
NoMemoryError
ScriptError
SecurityError
SignalException

62. How an exception is handled in Ruby?

Ans:

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.

63. Explain the use of retry statement in Ruby?

Ans:

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.

64. Explain raise statement in Ruby?

Ans:

The raise statement is used to raise an exception.

65. Explain the use of ensure statement in Ruby?

Ans:

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.

66. What is the use of else statement in Ruby exceptions?

Ans:

The else clause is always present after rescue clause and before ensure clause. If no exceptions are raised, then only else block is executed.
Syntax:
Begin

67. Ruby – Overview of Ruby programming language

Ans:

An open source programming language that focuses on simplicity and productivity. The syntax of Ruby language is elegant which is natural to read and easy to write.

68. Ruby – What is Rails?

Ans:

Ruby on Rails is an open source web application framework for the Ruby programming language.

69. Ruby – Describe class libraries in Ruby

Ans:

The Ruby standard library extends the foundation of the Ruby built-in library with classes and abstractions for a variety of programming needs.

70. Ruby – Garbage collection feature of Ruby

Ans:

Ruby is an object oriented language and every object oriented language tends to allocate many objects during execution of the program.



 

71. Ruby – Describe the environment variables present in Ruby

Ans:

RUBYOPT, RUBYLIB, RUBYPATH, RUBYSHELL, RUBYLIB_PREFIX.

72. Ruby – Interpolation is a very important process in Ruby, comment

Ans:

Interpolation is the process of inserting a string into a literal.

73. Ruby – What is the use of super in Ruby Rails?

Ans:

Ruby uses the super keyword to call the superclass implementation of the current method.

74. Ruby – What is the use of load and require in ruby?

Ans:

Reuire() loads and processes the Ruby code from a separate file, including whatever classes, modules, methods, and constants are in that file into the current scope.

75. Ruby – Explain the use of global variable $ in Ruby

Ans:

If you declare one variable as global we can access any where, where as class variable visibility only in the class.

76. Ruby – Difference between nil and false in ruby

Ans:

False is a boolean datatype, Nil is not a data type.

77. What will val1 and val2 equal after the code below is executed? Explain your answer.

val1 = true and false # hint: output of this statement in IRB is NOT value of val1!
val2 = true && false

Ans:

Although these two statements might appear to be equivalent, they are not, due to the order of operations. Specifically, the and and or operators have lower precedence than the =operator, whereas the && and || operators have higherprecedence than the = operator, based on order of operations.
To help clarify this, here’s the same code, but employing parentheses to clarify the default order of operations:
(val1 = true) and false # results in val1 being equal to true
val2 = (true && false) # results in val2 being equal to false
This is, incidentally, a great example of why using parentheses to clearly specify your intent is generally a good practice, in any language. But whether or not you use parentheses, it’s important to be aware of these order of operations rules and to thereby ensure that you are properly determining when to employ and / or vs. && / ||.

78. Which of the expressions listed below will result in “false”?

true ? “true” : “false”
false ? “true” : “false”
nil ? “true” : “false”
1 ? “true” : “false”
0 ? “true” : “false”
“false” ? “true” : “false”
“” ? “true” : “false”
[] ? “true” : “false”

Ans:

In Ruby, the only values that evaluate to false are false and nil. Everything else – even zero (0) and an empty array ([]) – evaluates to true.
This comes as a real surprise to programmers who have previously been working in other languages like JavaScript.

79. Write a function that sorts the keys in a hash by the length of the key as a string. For instance, the hash:

{ abc: ‘hello’, ‘another_key’ => 123, 4567 => ‘third’ }
should result in:
[“abc”, “4567”, “another_key”]

Ans:

As is always true in programming, there are in fact multiple ways to accomplish this.
The most straightforward answer would be of the form:
hsh.keys.map(&:to_s).sort_by(&:length)
or:
hsh.keys.collect(&:to_s).sort_by { |key| key.length }
Alternatively, Ruby’s Enumerable mixin provides many methods to operate on collections. The key here is to turn the hash keys into a collection, convert them all to strings, then sort the array.
def key_sort hsh
hsh.keys.collect(&:to_s).sort { |a, b| a.length <=> b.length }
end
An equivalent call of the collect method is done with the usual block syntax of:
collect { |x| x.to_s }