Interactive Ruby (irb)


Interactive Ruby or irb is an interactive programming environment that comes with Ruby. It was written by Keiju Ishitsuka.

Usage Syntax

To invoke it, type irb at a shell or command prompt, and begin entering Ruby statements and expressions. Use exit or quit to exit irb.

$ irb[.rb] [options] [programfile] [arguments]

Here is a complete list of options −

Sr.No. Command & Description
1 -f

Suppress reading of the file ~/.irbrc.

2 -m

bc mode (load mathn library so fractions or matrix are available).

3 -d

Sets $DEBUG to true (same as ruby -d).

4 -r load-module

Same as ruby -r.

5 -I path

Specify $LOAD_PATH directory.

6 --inspect

Use inspect for output (default except for bc mode).

7 --noinspect

Don't use inspect for output.

8 --readline

Use Readline extension module.

9 --noreadline

Don't use Readline extension module.

10 --prompt prompt-mode (--prompt-mode prompt-mode)

Switch prompt mode. Predefined prompt modes are default, simple, xmp, and inf-ruby.

11 --inf-ruby-mode

Use prompt appropriate for inf-ruby-mode on Emacs. Suppresses --readline.

12 --simple-prompt

Simple prompt mode.

13 --noprompt

No prompt mode.

14 --tracer

Display trace for each execution of commands.

15 --back-trace-limit n

Display backtrace top n and tail n. The default value is 16.

16 --irb_debug n

Set internal debug level to n (not for popular use).

17 -v (--version).

Print the version of irb.


Here is a sample of irb evaluating a variety of expressions::

$ irb
irb(main):001:0> 23 + 27
=> 50
irb(main):002:0> 50 - 23
=> 27
irb(main):003:0> 10 * 5
=> 50
irb(main):004:0> 10**5
=> 100000
irb(main):006:0> x = 1
=> 1
irb(main):007:0> x + 59
=> 60
irb(main):005:0> 50 / 5
=> 10
irb(main):008:0> hi = "Hello, Mac!"
=> "Hello, Mac!"

You can also invoke a single program with irb. After running the program, irb exits. Let's call our hello.rb program −

$ irb hello.rb
hello.rb(main):001:0> #!/usr/bin/env ruby
hello.rb(main):003:0* class Hello
hello.rb(main):004:1> def initialize( hello )
hello.rb(main):005:2> @hello = hello
hello.rb(main):006:2> end
hello.rb(main):007:1> def hello
hello.rb(main):008:2> @hello
hello.rb(main):009:2> end
hello.rb(main):010:1> end
=> nil
hello.rb(main):012:0* salute = "Hello, Mac!" )
=> #<Hello:0x319f20 @hello = "Hello, Mac!">
hello.rb(main):013:0> puts salute.hello
Hello, Mac!
=> nil
hello.rb(main):014:0> $