IRB and Filtering Input?

Hi,

Is there a way to filter what is typed/copy-pasted in/into IRB?

For example, just for fun and showcasing, to strip any 'a'
character typed when you are in IRB.

Or, more importantly and main reason to post this, to replace
leading whitespace + the first '#' char - so that a ruby
command, that is normally "protected" as a # comment,
is run instead.

I'd like to have a simple method to toggle between these
"modes", i.e.
filter_on
filter_off
or similar,
and then copy paste some lines of codes.

Right now I manually remove the leading #
and I'd like to let IRB handle this
rather :slight_smile:

···

--
Posted via http://www.ruby-forum.com/.

Marc Heiler wrote:

Hi,

Is there a way to filter what is typed/copy-pasted in/into IRB?

To solve this problem, write your own front end for "Kernel::eval" instead
of irb. With a few lines of code, you would have total control over what
"eval" saw and acted upon.

···

--
Paul Lutus
http://www.arachnoid.com

Marc Heiler wrote:

Is there a way to filter what is typed/copy-pasted in/into IRB?

For example, just for fun and showcasing, to strip any 'a'
character typed when you are in IRB.

Or, more importantly and main reason to post this, to replace
leading whitespace + the first '#' char - so that a ruby
command, that is normally "protected" as a # comment,
is run instead.

eval STDIN.read.gsub(/^[\s#]*/, '')

puts "yes"
     ## # puts "no, no, no!"
yes
no, no, no!
=> nil

Note that I just copied & pasted some code and then pressed
Control-D to signal that I've finished typing my code.

Ok thanks for the helping seed points guys :slight_smile:

···

--
Posted via http://www.ruby-forum.com/.