Hello,

I've got a kind of tricky question.  For my tutorial there are lots of code
samples, and I usually want to display the output of them in the page.  I'd
like to automate this.  I'm generating all of the pages in mod_ruby.

Because there are so many of them, though, I'd like them to be safe from
each other... I guess each one should be in it's own namespace?  (I don't
know much about namespaces... better not cover that in the tutorial!)

I'm hoping for something like this:

  code = "puts 'hello'"
  output = executeCode (code)
  output  #  should be "hello\n"

Each code sample is supposed to be it's own program, so I don't want any
possibilities of variables showing up in code samples further on down the
page, and *certainly* not on subsequent calls to that page!  Does any one
know how I could do this?

OK, if you can handle that, how about this...

Many of the programs require input.  Is there a way I could queue up the
input I want to send the program before it is run?  Something like this:

  code = <<-'END_CODE
    str1 = gets
    str2 = gets
    puts str1
    puts str2
  END_CODE

  input = "hello\n"+
          "hi\n"

  #  Then I'll strip the leading whitespace out of the code.

  output = executeCode (code, input)

If you can do that, you have helped me greatly.  However, the *perfect*
solution would be a little bit trickier...

I would like to echo the input back into the output in the right place (just
like would happen when running such a program from the commandline), and
surround it in special <span> tags so I can change it's style from the
'output' style to the 'input' style.

Do I have a hero out there?

Chris

EXTRA CREDIT:  Point me to some regexps for Ruby syntax coloring!  I'm sure
I don't need to reinvent that wheel.