goal "Understand how and when to use irb"
goal "Understand how to start and stop irb"
goal "Understand the difference between irb and the command line"
goal "Execute some simple Ruby statements"
message "irb is the **i**nteractive **r**u**b**y interpreter. It's a program
that runs Ruby code as you type it in."
message "Start irb on the **virtual machine**. Any time we ask you to use irb, it should be on the Virtual Machine"
result "irb(main): 001 >"
message "The prompt changed. This is irb's way of reminding you that it's
running, and telling you it's ready."
message "Hit **Enter** a few times."
result "irb(main): 002 >
irb(main): 003 >
irb(main): 004 >"
message "irb will run until you quit."
message "You're back at the command line. Notice that the prompt no longer says irb."
message "`exit` is the guaranteed way to get out of irb. Depending on your
operating system, Control-C or Control-D on an empty line may also work."
message "Practice going in and out of irb a couple of times. How can you tell
when you're in irb? How can you tell when you're back at the command line?"
message "irb is its own program with its own commands. Although we start it
from the command line, the commands to change directories and so on don't
work in irb."
message "Restart irb."
NameError: undefined local variable or method `pwd' for main:Object
from /usr/bin/irb:12:in `<main>'
message "This ferocious error message is irb saying \"Huh? What??\" because
irb only understands Ruby."
message "In irb, you can experiment with short pieces of code to figure out what they do."
5 + 9
109 / 17
2 ** 8
5 > 6
message "What happened after each line? What do you think these statements do?"
message "Lets take a closer look at the output of irb:"
irb "1 + 2"
irb(main):015 > 1 + 2
message "Here, `=> 3` is the **return value** of the **statement** `1 + 2`,
the result of running your code."
message "Every statement in Ruby has a **return value**: irb shows you that
value after you type a complete statement and press ENTER."
message "irb is a place to experiment and find out how certain language
features work. It's not a good place to write long programs. It doesn't let
you save your work, and it's not a very friendly text editor."
message "When you write a full-fledged program, you'll save it into a text
file on your computer. We'll see this in a later step."