Graphics in irb

I'm starting to teach my 7-year-old programming in Ruby, but unlike Scheme or Python or Logo, there doesn't seem to be a graphical interactive environment, such as DrScheme or Livewires.

It should be easy to create one, and I've made a start using Tk and irb.
I've come across what looks like an ommission in irb:

The IRB::Irb constructor takes optional "input_method" and "output_method" parameters. I've created an InputMethod subclass that reads commands from a GUI window, which works, but the output method is ignored - it's passed to the IRB::Context object, but never used.

It looks like something like the following is missing:

module IRB
   class Context
     def output( str )
       @output_method.print( str )
     end
   end

   class Irb
     def printf( *args )
       @context.output( sprintf( *args ) )
     end
   end
end

By doing that, I can then direct irb's output to my GUI object.

How should this get fixed in irb?

···

--
Andrew McGuinness

I think you can look here for a solution
http://onestepback.org/packages/rubyturtles/

Prasad

···

On 2/11/06, Andrew McGuinness <a.mcguinness@ntlworld.com> wrote:

I'm starting to teach my 7-year-old programming in Ruby, but unlike
Scheme or Python or Logo, there doesn't seem to be a graphical
interactive environment, such as DrScheme or Livewires.

It should be easy to create one, and I've made a start using Tk and irb.
I've come across what looks like an ommission in irb:

The IRB::Irb constructor takes optional "input_method" and
"output_method" parameters. I've created an InputMethod subclass that
reads commands from a GUI window, which works, but the output method is
ignored - it's passed to the IRB::Context object, but never used.

It looks like something like the following is missing:

module IRB
   class Context
     def output( str )
       @output_method.print( str )
     end
   end

   class Irb
     def printf( *args )
       @context.output( sprintf( *args ) )
     end
   end
end

By doing that, I can then direct irb's output to my GUI object.

How should this get fixed in irb?

--
Andrew McGuinness