Save pp output to a string

hi, folks -

how do I save the output from pp to a string for later use?

what I had hoped for is something like this:

     x= [2, 3,4]
     res = eval "pp x"

but that doesn't work.

thanks for help

Oliver

irb(main):001:0> require 'pp'
=> true

irb(main):002:0> h = {('a'*60)=>['b'*60,'c'*60],
('d'*60)=>['e'*60,'f'*60]}
=>
{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}

irb(main):003:0> pp h
{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>
  ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
   "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>
  ["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
   "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
=> nil

irb(main):004:0> str = h.pretty_inspect
=> "{\"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\"=>
\n [\"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeee\",\n
\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"],\n
\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaa\"=>\n
[\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\",\n
\"cccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccc\"]}\n"

irb(main):005:0> puts str
{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>
  ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
   "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>
  ["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
   "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
=> nil

···

On Nov 20, 11:48 am, Oliver <fwa...@gmail.com> wrote:

hi, folks -

how do I save the output from pp to a string for later use?

hi, folks -

how do I save the output from pp to a string for later use?

require 'pp'
x=[2,3,4]
string=""
PP.pp(x,string)
puts string
=> [2, 3, 4]

works for IO objects as well, or anything that supports <<.

···

On Wed, Nov 21, 2007 at 03:50:06AM +0900, Oliver wrote:

what I had hoped for is something like this:

     x= [2, 3,4]
     res = eval "pp x"

but that doesn't work.

thanks for help

Oliver

exactly what I need, thanks very much.

Oliver

···

On Nov 20, 2:01 pm, Phrogz <phr...@mac.com> wrote:

On Nov 20, 11:48 am, Oliver <fwa...@gmail.com> wrote:

> hi, folks -

> how do I save the output from pp to a string for later use?

irb(main):001:0> require 'pp'
=> true

irb(main):002:0> h = {('a'*60)=>['b'*60,'c'*60],
('d'*60)=>['e'*60,'f'*60]}
=>
{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}

irb(main):003:0> pp h
{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>
  ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
   "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>
  ["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
   "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
=> nil

irb(main):004:0> str = h.pretty_inspect
=> "{\"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\"=>
\n [\"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
eeeeee\",\n
\"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"],\n
\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaa\"=>\n
[\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\",\n
\"cccccccccccccccccccccccccccccccccccccc
cccccccccccccccccccccc\"]}\n"

irb(main):005:0> puts str
{"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>
  ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
   "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>
  ["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
   "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
=> nil

Hallelujah! I thought this was impossible.

···

On Nov 20, 2007 11:50 AM, Oliver <fwang2@gmail.com> wrote:

exactly what I need, thanks very much.

Oliver

On Nov 20, 2:01 pm, Phrogz <phr...@mac.com> wrote:
> On Nov 20, 11:48 am, Oliver <fwa...@gmail.com> wrote:
>
> > hi, folks -
>
> > how do I save the output from pp to a string for later use?
>
> irb(main):001:0> require 'pp'
> => true
>
> irb(main):002:0> h = {('a'*60)=>['b'*60,'c'*60],
> ('d'*60)=>['e'*60,'f'*60]}
> =>
> {"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
> "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
> "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
>
> irb(main):003:0> pp h
> {"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>
> ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
> "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>
> ["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
> "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
> => nil
>
> irb(main):004:0> str = h.pretty_inspect
> => "{\"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\"=>
> \n [\"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
> eeeeee\",\n
> \"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"],\n
> \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
> aaaaaaaaaaaaa\"=>\n
> [\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\",\n
> \"cccccccccccccccccccccccccccccccccccccc
> cccccccccccccccccccccc\"]}\n"
>
> irb(main):005:0> puts str
> {"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"=>
> ["eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
> "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],
> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"=>
> ["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
> "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"]}
> => nil

--
Giles Bowkett

Podcast: http://hollywoodgrit.blogspot.com
Blog: http://gilesbowkett.blogspot.com
Portfolio: http://www.gilesgoatboy.org
Tumblelog: http://giles.tumblr.com