When playing with small scripts and using puts to output some results, I
find it rather disappointing that outputting an array or hash does not
have the data structure chrome of [ ] and { } -- I know IRB does this,
but I'm testing stuff too cumbersome for IRB.
Is there a way to run a #! script and cause output using puts (or
alternative) to actually show an array like ['a', 'b'] instead of just
ab ?
-- gw
···
--
Posted via http://www.ruby-forum.com/.
Alle giovedì 25 ottobre 2007, Greg Willits ha scritto:
When playing with small scripts and using puts to output some results, I
find it rather disappointing that outputting an array or hash does not
have the data structure chrome of and { } -- I know IRB does this,
but I'm testing stuff too cumbersome for IRB.
Is there a way to run a #! script and cause output using puts (or
alternative) to actually show an array like ['a', 'b'] instead of just
ab ?
-- gw
Use p instead of puts. puts(obj) calls obj.to_s, while p(obj) calls p.inspect,
which is what IRB does.
I hope this helps
Stefano
# Is there a way to run a #! script and cause output using puts (or
# alternative) to actually show an array like ['a', 'b'] instead of just
# ab ?
a
=> [1, 2]
b
=> {1=>2, 2=>3}
p a,b
[1, 2]
{1=>2, 2=>3}
puts a.inspect, b.inspect
[1, 2]
{1=>2, 2=>3}
in ruby1.9, you can do
puts a.to_s, b.to_s
and p now returns array result (amazing) like,
RUBY_VERSION
=> "1.9.0"
p a,b
[1, 2]
{1=>2, 2=>3}
=> [[1, 2], {1=>2, 2=>3}]
x=(p a,b)
p x
[[1, 2], {1=>2, 2=>3}]
=> [[1, 2], {1=>2, 2=>3}]
nice for debugging/testing.
kind regards -botp
···
from: Greg Willits [mailto:lists@gregwillits.ws]