mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 07:08:01 +00:00
1.1 KiB
1.1 KiB
Return The Thing Being Printed
The puts method
is the canonical way of priting things to stdout in Ruby. Notably, its return
value is always nil. Generally this isn't much of an issue, but can be a
potential gotcha while debugging.
Consider the following method whose behavior you are trying to investigate:
def process(arg)
thing = do_something(arg)
thing.value
end
I want to print out the value of thing when I execute the code to see what it
is while debugging. So I add a puts statement.
def process(arg)
thing = do_something(arg)
puts thing.value
end
Well, I just broke the behavior of process because it now returns nil
instead of thing.value.
I could add an additional line that returns the correct value. Or I could use
p which both prints
its argument to stdout and returns it as is.
def process(arg)
thing = do_something(arg)
p thing.value
end