puts, print and p

puts adds newline

The puts method writes each argument on its own line by adding a newline automatically.

The classic printing primer shows the same call, and here is how it behaves with an array.

puts "one" puts "two" puts [1, 2]

ruby puts_demo.rb

one
two
1
2

print does not

The print method writes exactly what it receives, with no newline added.

Join fragments with print and add the newline yourself when the line is complete.

print "one, " print "two" print "\n"

ruby print_demo.rb

one, two

p shows inspect

The p method writes the inspect form, which reveals the type behind the value.

Quotes around one mean a string and brackets mean an array, so the structure stays visible.

p "one" p [1, "two"] p({ name: "Ada" })

ruby p_demo.rb

"one"
[1, "two"]
{name: "Ada"}

printf basics

The printf method formats values into a template with placeholders for strings and numbers.

Minus ten in %-10s pads the name to ten columns, and zero four in %04d pads the number with zeros.

printf("%-10s %04d\n", "Ada", 42)

ruby printf_demo.rb

Ada 0042

Next: ERB templates

Article author: Arthur Isaev