> i do have a shell script doing :
> 
> `man "#{arg}" 2> "#{tmp}/#{fm}" PIPE man2html > "#{tmp}/#{f1}"`
> 
> because i want to know if there is "No manual entry for "#{arg}""
> 
> then for the time being i'm using an tmp file "#{tmp}/#{fm}"  which i
> read after to know i i get the message :
> 
> "No manual entry for "#{arg}""
> 
> i'm sure there is a more elegant way doing that in Ruby, avoiding
> shelling, BUT HOW TO ?

If you want to do it completely within Ruby, you could first slurp the
output of man into a Ruby variable, i.e.

  man_page=%x(man #{arg})
  
and if it is OK, i.e.

  if man_page.length > 0
     ...
send this as stdin into man2html, i.e. something like:

  to_html=IO.popen("man2html >#{f1}","w")
  to_html.print(man_page)
  to_html.close

From a logical point of view, this solution has the advantage 
that you don't overwrite your file f1 if the man page does not exist.

For a simpler solution (a bit dirty, but less keystrokes), you might
consider
the following idea, which however *does* use a shell:

  error_message=%x[(man #{arg}|man2html >#{f1}) 2>&1]

After this, error_message contains whatever man and/org man2html spilled
out onto stderr, but f1 is always overwritten (even if there is no man
page).

HTH,

Ronald
-- 
Ronald Fischer <ronald.fischer / venyon.com>
Phone: +49-89-452133-162