Bird
Raised Fist0
Rubyprogramming~5 mins

CSV library basics in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the CSV library in Ruby?
The CSV library helps read from and write to CSV (Comma-Separated Values) files easily, making it simple to handle tabular data.
Click to reveal answer
beginner
How do you require the CSV library in a Ruby script?
Use require 'csv' at the top of your Ruby file to load the CSV library.
Click to reveal answer
beginner
How do you read a CSV file line by line in Ruby?
Use CSV.foreach('filename.csv') do |row| ... end. Each row is an array of values from that line.
Click to reveal answer
intermediate
How do you write an array of arrays to a CSV file in Ruby?
Use CSV.open('filename.csv', 'w') do |csv| data.each { |row| csv << row } end where data is an array of arrays.
Click to reveal answer
intermediate
What does CSV.parse do?
CSV.parse reads CSV data from a string instead of a file, returning an array of rows.
Click to reveal answer
Which Ruby command loads the CSV library?
Arequire 'csv'
Bimport csv
Cinclude CSV
Dload 'csv'
What does CSV.foreach('file.csv') do |row| ... end do?
AReads the CSV file line by line, yielding each row as an array
BWrites rows to the CSV file
CParses CSV data from a string
DDeletes the CSV file
How do you write data to a CSV file in Ruby?
ACSV.delete('file.csv')
BCSV.read('file.csv')
CCSV.open('file.csv', 'w') { |csv| csv << ['data'] }
DCSV.parse('data')
What type of object is each row when reading CSV with CSV.foreach?
AString
BArray
CHash
DInteger
Which method reads CSV data from a string instead of a file?
ACSV.foreach
BCSV.read
CCSV.open
DCSV.parse
Explain how to read a CSV file line by line in Ruby using the CSV library.
Think about how to open and process each line easily.
You got /4 concepts.
    Describe the steps to write multiple rows of data to a CSV file in Ruby.
    Consider how to open a file for writing and add rows one by one.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Ruby CSV method CSV.foreach do?
      easy
      A. Reads a CSV file line by line, yielding each row as an array.
      B. Writes data to a CSV file line by line.
      C. Converts a CSV file into a hash with headers as keys.
      D. Deletes a CSV file from the system.

      Solution

      1. Step 1: Understand CSV.foreach purpose

        The method CSV.foreach is designed to read CSV files line by line.
      2. Step 2: Identify the output format

        Each line is yielded as an array of strings representing the cells in that row.
      3. Final Answer:

        Reads a CSV file line by line, yielding each row as an array. -> Option A
      4. Quick Check:

        CSV.foreach reads lines as arrays [OK]
      Hint: Remember: foreach reads rows, open writes rows [OK]
      Common Mistakes:
      • Confusing reading with writing methods
      • Thinking it returns a hash instead of an array
      • Assuming it deletes files
      2. Which of the following is the correct syntax to open a CSV file for writing in Ruby?
      easy
      A. CSV.read('file.csv', 'w')
      B. CSV.open('file.csv', 'r') do |csv| ... end
      C. CSV.foreach('file.csv') do |csv| ... end
      D. CSV.open('file.csv', 'w') do |csv| ... end

      Solution

      1. Step 1: Identify mode for writing

        To write to a CSV file, the mode should be 'w' (write mode).
      2. Step 2: Match syntax with CSV.open

        The correct syntax is CSV.open('file.csv', 'w') do |csv| ... end to open for writing.
      3. Final Answer:

        CSV.open('file.csv', 'w') do |csv| ... end -> Option D
      4. Quick Check:

        Open with 'w' writes CSV [OK]
      Hint: Use 'w' mode with CSV.open to write files [OK]
      Common Mistakes:
      • Using 'r' mode which is for reading
      • Using CSV.foreach for writing
      • Using CSV.read with mode argument
      3. What will be the output of this Ruby code?
      require 'csv'
      CSV.foreach('data.csv') do |row|
        puts row.inspect
      end

      Assuming data.csv contains:
      name,age
      Alice,30
      Bob,25
      medium
      A. Error: CSV.foreach requires a block
      B. ["name", "age"]\n["Alice", "30"]\n["Bob", "25"]
      C. ["name,age"]\n["Alice,30"]\n["Bob,30"]
      D. name,age\nAlice,30\nBob,25

      Solution

      1. Step 1: Understand CSV.foreach behavior

        It reads each line and yields an array of strings split by commas.
      2. Step 2: Analyze puts row.inspect output

        Using puts row.inspect prints the array representation of each row.
      3. Final Answer:

        ["name", "age"]\n["Alice", "30"]\n["Bob", "25"] -> Option B
      4. Quick Check:

        CSV.foreach yields arrays, inspect shows arrays [OK]
      Hint: CSV.foreach yields arrays; inspect shows array format [OK]
      Common Mistakes:
      • Expecting raw CSV string output
      • Confusing puts with print
      • Missing block for CSV.foreach
      4. Identify the error in this Ruby code snippet:
      require 'csv'
      CSV.open('output.csv', 'w') do |csv|
        csv << 'name,age'
        csv << ['Alice', 30]
      end
      medium
      A. The first csv << should be an array, not a string.
      B. Missing require statement for CSV library.
      C. The file mode 'w' is invalid for CSV.open.
      D. csv << cannot accept arrays.

      Solution

      1. Step 1: Check CSV.open usage for writing rows

        CSV expects each row as an array of fields, not a single string.
      2. Step 2: Identify the incorrect row format

        The line csv << 'name,age' should be csv << ['name', 'age'] to write two columns.
      3. Final Answer:

        The first csv << should be an array, not a string. -> Option A
      4. Quick Check:

        CSV rows must be arrays [OK]
      Hint: Write rows as arrays, not comma strings [OK]
      Common Mistakes:
      • Passing a string instead of array for a row
      • Forgetting to require 'csv'
      • Using wrong file mode
      5. You want to read a CSV file and create a hash where the first column is the key and the second column is the value. Which Ruby code correctly does this using the CSV library?
      hard
      A. hash = CSV.read('file.csv').to_h
      B. hash = CSV.open('file.csv', 'w') { |csv| csv.to_h }
      C. hash = {} CSV.foreach('file.csv') do |row| hash[row[0]] = row[1] end
      D. hash = CSV.foreach('file.csv') { |row| row.to_h }

      Solution

      1. Step 1: Understand CSV.foreach usage for reading

        CSV.foreach reads each row as an array, allowing manual hash construction.
      2. Step 2: Build hash from first and second columns

        Assigning hash[row[0]] = row[1] correctly maps keys to values.
      3. Final Answer:

        hash = {} CSV.foreach('file.csv') do |row| hash[row[0]] = row[1] end -> Option C
      4. Quick Check:

        foreach + manual hash build = correct [OK]
      Hint: Use foreach and assign hash keys manually [OK]
      Common Mistakes:
      • Using CSV.read.to_h which doesn't convert arrays to hash
      • Using CSV.open with 'w' mode for reading
      • Expecting row.to_h to work directly
      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