[ANN] Grepper: object-oriented grepping

D

David A. Black

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
 
T

Tiago Nogueira

David A. Black escreveu:
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
Hi David,
Very cool your idea! I will take a look and make some codes to see the
power of the Grepper.
Hugs,
- Tiago
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top