Forum: Ruby Grepper: object-oriented grepping

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
F53b05cdbdf561cfe141f69b421244f3?d=identicon&s=25 David A. Black (Guest)
on 2008-12-24 02:54
(Received via mailing list)
Hi --

If you feel the need to do simple object-oriented grepping, have a
look at the Grepper class, which is in a project I've started on
RubyForge (http://rubyforge.org/projects/grepper/). You give a Grepper
object a list of files, a pattern, some options... and it creates a
result set, which you can then walk through.

   g = Grepper.new
   g.files = %w{ one.txt two.txt three.txt }
   g.options = %w{ B2 }   # two lines of before-context
   g.run

   g.results.each do |file, result|
     result.matches.each do |lineno,before,line,after|

   etc.

There's also a Formatter, which does its best to emulate standard
grep(1) output. In fact the whole thing started as an experiment in
implementing grep in Ruby. I then decided to create a layer that just
did the grep logic, on top of which I could build the output
formatting and so forth.

Let me know if any bugs, questions, etc.


David
A745f7d401d0a9bf80a5d5d94c961a05?d=identicon&s=25 Tiago Nogueira (Guest)
on 2008-12-24 03:26
(Received via mailing list)
David A. Black escreveu:
>   g.options = %w{ B2 }   # two lines of before-context
> did the grep logic, on top of which I could build the output
> formatting and so forth.
>
> Let me know if any bugs, questions, etc.
>
>
> David
>
Hi David,
Very cool your idea! I will take a look and make some codes to see the
power of the Grepper.
Hugs,
 - Tiago
This topic is locked and can not be replied to.