Bird
Raised Fist0
Rubyprogramming~10 mins

IRB customization in Ruby - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - IRB customization
Start IRB session
↓
Load .irbrc file if exists
↓
Apply custom settings
↓
User enters commands
↓
Commands run with customizations
↓
Repeat until exit
When IRB starts, it looks for a .irbrc file to load custom settings before running user commands.
Execution Sample
Ruby
require 'irb'
IRB.conf[:PROMPT_MODE] = :SIMPLE
puts "Custom prompt set"
# Start IRB session
IRB.start
This code sets a simple prompt style in IRB and prints confirmation before starting IRB.
Execution Table
StepActionEvaluationResult
1IRB startsCheck for .irbrc fileFound .irbrc, load it
2Load .irbrcExecute custom codeCustom prompt set
3Set IRB.conf[:PROMPT_MODE]Assign :SIMPLEPrompt style changed
4User enters command"puts 'Hello'"Prints Hello
5User enters command"1 + 2"Returns 3
6User exits IRBExit commandIRB session ends
💡 User types exit or Ctrl+D to end IRB session
Variable Tracker
VariableStartAfter Step 2After Step 3Final
IRB.conf[:PROMPT_MODE]defaultdefault:SIMPLE:SIMPLE
Key Moments - 2 Insights
Why doesn't my IRB customization work when I start IRB?
Make sure your .irbrc file is in your home directory and has correct Ruby syntax. See step 1 and 2 in the execution_table where IRB loads .irbrc.
How do I change the IRB prompt style?
Set IRB.conf[:PROMPT_MODE] to a symbol like :SIMPLE or :DEFAULT in your .irbrc file as shown in step 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of IRB.conf[:PROMPT_MODE] after step 3?
Anil
B:DEFAULT
C:SIMPLE
Dfalse
💡 Hint
Check variable_tracker row for IRB.conf[:PROMPT_MODE] after step 3
At which step does IRB load the .irbrc file?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Look at the action column in execution_table for loading .irbrc
If you remove the .irbrc file, what happens at step 2?
AIRB loads default settings
BIRB skips customization
CIRB crashes
DIRB prompts for file location
💡 Hint
Step 2 shows loading .irbrc; no file means skipping customization
Concept Snapshot
IRB customization uses a .irbrc file in your home directory.
Put Ruby code there to change IRB behavior.
Common changes: prompt style, history saving.
IRB loads .irbrc automatically on start.
If no .irbrc, IRB uses defaults.
Use IRB.conf hash to set options.
Full Transcript
When you start IRB, it looks for a file named .irbrc in your home folder. If it finds this file, it runs the Ruby code inside it. This lets you change how IRB works, like changing the prompt style or saving command history. For example, setting IRB.conf[:PROMPT_MODE] to :SIMPLE changes the prompt to a simpler style. If IRB does not find .irbrc, it just uses the default settings. You can type commands as usual, and IRB will run them with your custom settings. To stop IRB, type exit or press Ctrl+D.

Practice

(1/5)
1. What is the main purpose of customizing the ~/.irbrc file in Ruby's IRB?
easy
A. To create new Ruby classes
B. To install new Ruby gems automatically
C. To change how the IRB shell looks and behaves
D. To compile Ruby code faster

Solution

  1. Step 1: Understand the role of ~/.irbrc

    The ~/.irbrc file is used to customize the IRB shell environment.
  2. Step 2: Identify customization effects

    Customizations include changing the prompt, loading libraries, and saving history, which affect how IRB looks and works.
  3. Final Answer:

    To change how the IRB shell looks and behaves -> Option C
  4. Quick Check:

    IRB customization = change shell behavior [OK]
Hint: Remember ~/.irbrc customizes IRB shell behavior [OK]
Common Mistakes:
  • Thinking it installs gems automatically
  • Confusing with Ruby code compilation
  • Assuming it creates Ruby classes
2. Which of the following is the correct way to load the 'date' library automatically when IRB starts by editing ~/.irbrc?
easy
A. require 'date'
B. load 'date'
C. import 'date'
D. include 'date'

Solution

  1. Step 1: Recall Ruby syntax for loading libraries

    Ruby uses require 'library_name' to load external libraries.
  2. Step 2: Check each option

    require 'date' is correct; load expects a file path, import and include are incorrect here.
  3. Final Answer:

    require 'date' -> Option A
  4. Quick Check:

    Load library = require 'library' [OK]
Hint: Use require to load libraries in ~/.irbrc [OK]
Common Mistakes:
  • Using import which is not Ruby syntax
  • Using include which mixes modules, not load libs
  • Using load without full file path
3. Given this ~/.irbrc snippet:
IRB.conf[:PROMPT_MODE] = :SIMPLE
IRB.conf[:SAVE_HISTORY] = 1000

What effect does this have when you start IRB?
medium
A. Disables command history and uses default prompt
B. Changes prompt color but does not save history
C. Causes a syntax error and IRB won't start
D. Sets a simple prompt and saves last 1000 commands in history

Solution

  1. Step 1: Understand IRB.conf[:PROMPT_MODE]

    Setting :PROMPT_MODE to :SIMPLE changes IRB prompt to a simple style.
  2. Step 2: Understand IRB.conf[:SAVE_HISTORY]

    Setting :SAVE_HISTORY to 1000 means IRB saves the last 1000 commands in history.
  3. Final Answer:

    Sets a simple prompt and saves last 1000 commands in history -> Option D
  4. Quick Check:

    Prompt = simple, History saved = 1000 [OK]
Hint: Look for keys in IRB.conf to know prompt and history settings [OK]
Common Mistakes:
  • Thinking it disables history
  • Assuming syntax error from valid config
  • Confusing prompt style with color only
4. You wrote this in your ~/.irbrc file:
IRB.conf[:SAVE_HISTORY] = '1000'

But IRB does not save history as expected. What is the problem?
medium
A. The key :SAVE_HISTORY is invalid
B. The value should be an integer, not a string
C. IRB does not support saving history
D. You must restart the computer for changes to apply

Solution

  1. Step 1: Check the data type of the value

    :SAVE_HISTORY expects an integer number, not a string.
  2. Step 2: Identify the error cause

    Using a string like '1000' causes IRB to ignore the setting, so history is not saved.
  3. Final Answer:

    The value should be an integer, not a string -> Option B
  4. Quick Check:

    Integer value needed for history count [OK]
Hint: Use numbers, not strings, for numeric IRB config values [OK]
Common Mistakes:
  • Using quotes around numbers
  • Thinking IRB can't save history
  • Believing a full restart is needed
5. You want to customize IRB so that it automatically requires the 'json' library, sets a custom prompt showing the current time, and saves 500 commands in history. Which ~/.irbrc snippet correctly does this?
hard
A. require 'json' IRB.conf[:PROMPT][:CUSTOM] = { PROMPT_I: "[#{Time.now.strftime('%H:%M:%S')}] > " } IRB.conf[:PROMPT_MODE] = :CUSTOM IRB.conf[:SAVE_HISTORY] = 500
B. require 'json' IRB.conf[:PROMPT_MODE] = :SIMPLE IRB.conf[:SAVE_HISTORY] = '500'
C. load 'json' IRB.conf[:PROMPT_MODE] = :DEFAULT IRB.conf[:SAVE_HISTORY] = 500
D. require 'json' IRB.conf[:PROMPT_MODE] = :CUSTOM IRB.conf[:SAVE_HISTORY] = 1000

Solution

  1. Step 1: Load the 'json' library correctly

    Use require 'json' to load the library automatically.
  2. Step 2: Define a custom prompt with current time

    Set IRB.conf[:PROMPT][:CUSTOM] with a prompt string showing current time using Ruby's Time.now.strftime.
  3. Step 3: Set prompt mode and save history

    Assign IRB.conf[:PROMPT_MODE] = :CUSTOM to use the custom prompt and set IRB.conf[:SAVE_HISTORY] = 500 as an integer to save 500 commands.
  4. Final Answer:

    require 'json', custom prompt with current time, :CUSTOM mode, SAVE_HISTORY = 500 -> Option A
  5. Quick Check:

    Require json, custom prompt with time, save 500 history [OK]
Hint: Combine require, custom prompt hash, and integer history save [OK]
Common Mistakes:
  • Using string instead of integer for history
  • Not defining custom prompt hash properly
  • Using load instead of require for libraries
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard