Bird
Raised Fist0
Rubyprogramming~5 mins

Heredoc syntax for multiline strings in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is heredoc syntax in Ruby?
Heredoc syntax allows you to create multiline strings easily by using << followed by an identifier, then the string content, and ending with the same identifier on its own line.
Click to reveal answer
beginner
How do you start a heredoc string in Ruby?
You start a heredoc string with << followed by an identifier, for example <
Click to reveal answer
beginner
How do you end a heredoc string in Ruby?
You end a heredoc string by placing the same identifier used to start it on its own line, with no extra spaces or characters.
Click to reveal answer
intermediate
What is the difference between <
<
Click to reveal answer
intermediate
How can you create a heredoc string that does not process escape sequences or interpolation?
Use single quotes around the identifier like <<'EOF'. This creates a literal string where escape sequences and interpolation are not processed.
Click to reveal answer
Which of the following correctly starts a heredoc string in Ruby?
A<<TEXT
B<TEXT
C<<<TEXT
D<-TEXT
How must the ending identifier of a heredoc appear when using <
AAt the start of the line with no spaces
BInside quotes
COn the same line as the string content
DIndented with spaces
What does <<-'EOF' do differently than <
AStarts a single-line string
BDisables string interpolation
CAllows the ending identifier to be indented
DEnds the string immediately
How do you create a heredoc string that treats content literally (no interpolation or escape sequences)?
A<<EOF
B<<'EOF'
C<<-EOF
D<<"EOF"
What will this Ruby code output? str = <
AError
BHello\nWorld
CHello World
DHello World
Explain how to write a multiline string using heredoc syntax in Ruby.
Think about how you mark the start and end of the string.
You got /3 concepts.
    Describe the difference between <
    Focus on indentation and string processing differences.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using heredoc syntax in Ruby?
      easy
      A. To declare variables with fixed values
      B. To create single-line comments
      C. To write multiline strings easily without using escape characters
      D. To define methods with multiple parameters

      Solution

      1. Step 1: Understand what heredoc does

        Heredoc syntax allows writing strings that span multiple lines without needing escape characters like \n.
      2. Step 2: Compare options

        Declaring variables with fixed values, creating single-line comments, and defining methods with multiple parameters describe unrelated Ruby features. Only writing multiline strings easily without using escape characters correctly describes heredoc's purpose.
      3. Final Answer:

        To write multiline strings easily without using escape characters -> Option C
      4. Quick Check:

        Heredoc = multiline strings [OK]
      Hint: Heredoc is for easy multiline text, not comments or methods [OK]
      Common Mistakes:
      • Confusing heredoc with comments
      • Thinking heredoc defines methods
      • Assuming heredoc is for variables only
      2. Which of the following is the correct syntax to start a heredoc string named TEXT in Ruby?
      easy
      A. << TEXT
      B. <TEXT
      C.
      D. TEXT<<

      Solution

      1. Step 1: Recall heredoc start syntax

        Heredoc starts with << followed immediately by an identifier, e.g., <
      2. Step 2: Check each option

        <<TEXT matches the correct syntax. << TEXT with space is invalid. Arrangements like
      3. Final Answer:

        <<TEXT -> Option B
      4. Quick Check:

        Start heredoc with <<IDENTIFIER [OK]
      Hint: Heredoc starts with << followed by the identifier [OK]
      Common Mistakes:
      • Putting identifier before <<
      • Using incorrect symbols like < or - wrongly
      • Confusing heredoc start with end
      3. What will be the output of this Ruby code?
      text = <<~GREETING
        Hello,
          Welcome to Ruby!
      GREETING
      puts text
      medium
      A. Hello, Welcome to Ruby!
      B. Hello, Welcome to Ruby!
      C. Hello, Welcome to Ruby!
      D. !ybuR ot emocleW ,olleH

      Solution

      1. Step 1: Understand <<~ operator

        The <<~ syntax removes leading spaces common to all lines, aligning text left.
      2. Step 2: Analyze the given text

        Original lines have 2 spaces before 'Hello,' and 4 before 'Welcome'. The common indent is 2 spaces, so those are removed.
      3. Step 3: Resulting output

        After removing 2 spaces, 'Hello,' starts at column 0, 'Welcome...' starts with 2 spaces.
      4. Final Answer:

        Hello, Welcome to Ruby! -> Option A
      5. Quick Check:

        <<~ removes common indent [OK]
      Hint: <<~ removes common leading spaces from all lines [OK]
      Common Mistakes:
      • Ignoring <<~ and expecting original indentation
      • Confusing \n with actual new lines
      • Assuming all spaces are removed
      4. Identify the error in this Ruby heredoc code:
      message = <
      medium
      A. The string must be enclosed in quotes
      B. The starting identifier should be lowercase
      C. The heredoc must use <<~ instead of <<
      D. The ending identifier must match exactly and be alone on its line

      Solution

      1. Step 1: Check heredoc start and end identifiers

        Heredoc must end with the same identifier used to start it, alone on a line with no spaces.
      2. Step 2: Analyze given code

        Start identifier is GREETING but end identifier is END, which is incorrect.
      3. Final Answer:

        The ending identifier must match exactly and be alone on its line -> Option D
      4. Quick Check:

        Start and end identifiers must match [OK]
      Hint: End heredoc with the exact same word alone on a line [OK]
      Common Mistakes:
      • Mismatching start and end identifiers
      • Adding spaces after end identifier
      • Using lowercase instead of uppercase identifiers
      5. You want to create a multiline string with indentation preserved but also want to remove leading spaces common to all lines for neat code. Which heredoc syntax should you use in Ruby?
      hard
      A. <<~TEXT
      B. <<-TEXT
      C. <TEXT
      D. <<=TEXT

      Solution

      1. Step 1: Understand heredoc variants

        <<TEXT preserves all spaces; <<-TEXT allows indenting the end marker; <<~TEXT removes common leading spaces from all lines.
      2. Step 2: Match requirement

        To keep indentation inside the string but remove common leading spaces for clean code, <<~TEXT is the correct choice.
      3. Final Answer:

        <<~TEXT -> Option A
      4. Quick Check:

        <<~ trims common indent [OK]
      Hint: <<~ removes common indent, use it for clean multiline strings [OK]
      Common Mistakes:
      • Using <<- which only affects end marker indentation
      • Using << which keeps all spaces
      • Assuming <<= is valid syntax
      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