[#303658] Remove Parts of a String — Dan __ <major_general_joe@...>

Alright, this is probably a really simple question to answer, but I just

15 messages 2008/06/01

[#303876] deleting first line from a file — suresh <suresh.amritapuri@...>

Hi

16 messages 2008/06/03

[#303934] Module philosophy — "Leslie Viljoen" <leslieviljoen@...>

Sorry to beat a dead horse, but to confirm: the only way to mix a

12 messages 2008/06/04

[#303941] A complete guide for Ruby Progammers — Mc Mohd <mcmohd@...>

This tutorial gives you complete knowledge starting from basic to

23 messages 2008/06/04
[#303943] Re: A complete guide for Ruby Progammers — Davi Vidal <davividal@...> 2008/06/04

Em Wednesday 04 June 2008, Mc Mohd escreveu:

[#303945] Re: A complete guide for Ruby Progammers — Mc Mohd <mcmohd@...> 2008/06/04

Sorry pal missed to send URL. Its here:

[#303947] Re: A complete guide for Ruby Progammers — "Oscar Del Ben" <thehcdreamer@...> 2008/06/04

Thanks for your work ;)

[#303948] Re: A complete guide for Ruby Progammers — "Leslie Viljoen" <leslieviljoen@...> 2008/06/04

This tutorial looks strangely familiar!

[#303957] A crosspost from the Perl Community — Star Cross <starx@...>

All,

55 messages 2008/06/04
[#303983] Re: A crosspost from the Perl Community — David Masover <ninja@...> 2008/06/04

On Wednesday 04 June 2008 12:20:37 Star Cross wrote:

[#304212] Re: A crosspost from the Perl Community — Jenda Krynicky <jenda@...> 2008/06/06

David Masover wrote:

[#304303] Re: A crosspost from the Perl Community — David Masover <ninja@...> 2008/06/07

On Friday 06 June 2008 12:02:19 Jenda Krynicky wrote:

[#305043] Re: A crosspost from the Perl Community — Jenda Krynicky <jenda@...> 2008/06/13

David Masover wrote:

[#304075] Re: A crosspost from the Perl Community — Dave Bass <davebass@...> 2008/06/05

Coming to Ruby recently from Perl, these are my comments.

[#304084] Re: A crosspost from the Perl Community — "Eric Mahurin" <eric.mahurin@...> 2008/06/05

On Thu, Jun 5, 2008 at 10:00 AM, Dave Bass <davebass@musician.org> wrote:

[#304175] Re: A crosspost from the Perl Community — Dave Bass <davebass@...> 2008/06/06

Eric Mahurin wrote:

[#304217] Preferable Pairs (#165) — "Matthew Moss" <matthew.moss@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

17 messages 2008/06/06

[#304230] Desktop multi-plataform ruby app — "Israel Guerra" <israel.guerra@...>

Hail everyone!

60 messages 2008/06/06
[#304237] Re: Desktop multi-plataform ruby app — Charles Oliver Nutter <charles.nutter@...> 2008/06/06

Israel Guerra wrote:

[#304241] Re: Desktop multi-plataform ruby app — James Britt <james.britt@...> 2008/06/06

Charles Oliver Nutter wrote:

[#304242] Re: Desktop multi-plataform ruby app — "Israel Guerra" <israel.guerra@...> 2008/06/06

But guys, maybe im wrong about jruby, but its a ruby interpreter running in

[#304271] Re: Desktop multi-plataform ruby app — "Victor Reyes" <victor.reyes@...> 2008/06/07

On Fri, Jun 6, 2008 at 4:15 PM, Charles Oliver Nutter <

[#304240] Re: Desktop multi-plataform ruby app — James Britt <james.britt@...> 2008/06/06

Israel Guerra wrote:

[#304309] Re: Desktop multi-plataform ruby app — Tom Cloyd <tomcloyd@...> 2008/06/07

James Britt wrote:

[#304284] using portions of other methods in a new method — Jason Lillywhite <jason.lillywhite@...>

How do you take a piece of a method and use it in another? Here is my

10 messages 2008/06/07

[#304353] Ruby wishlist — jzakiya <jzakiya@...>

You can do this:

23 messages 2008/06/08

[#304443] my first program just shuttin' down — Ruby Noob <john_@...>

Why? I tryin' to open the "hello.rb" program, but it just shuttin' down

12 messages 2008/06/08

[#304541] Ruby vs JRuby Performance — "Victor Reyes" <victor.reyes@...>

I knew that there was a penalty to be paid when running JRuby, but I did not

20 messages 2008/06/09

[#304623] Random Number Stuff — David Stanislaus <stanislaus_d@...>

How would you create a random number generator thats limited to a

17 messages 2008/06/10

[#304640] accessing class variables from the outside (beginner question) — progcat@...

I am still learning Ruby and I am trying to get something

12 messages 2008/06/10

[#304662] webby, ubuntu and gems — "Martin DeMello" <martindemello@...>

I've recently switched distributions to ubuntu, and I'm having

15 messages 2008/06/10

[#304728] Basic Tree Data Structure — Justin To <tekmc@...>

class Tree

14 messages 2008/06/10
[#304738] Re: Basic Tree Data Structure — Justin To <tekmc@...> 2008/06/10

class Tree

[#304790] Trie data structure — Justin To <tekmc@...>

I'm trying to implement a trie data structure for my parsing program

17 messages 2008/06/10
[#304826] Re: Trie data structure — Dave Bass <davebass@...> 2008/06/11

Justin To wrote:

[#304825] each with else — Thorsten Mler <thorsten@80beans.com>

Hi all,

11 messages 2008/06/11

[#304875] write byte array to file — "Rajesh Olafson" <rolafson@...>

Helo

16 messages 2008/06/11

[#304960] Help with Ruby under cygwin — James Byrne <byrnejb@...>

In order to use git on my laptop (MS XPproSP3) I ended up installing the

23 messages 2008/06/12

[#304992] a simple patch for the ri utility — Daniel Choi <dhchoi@...>

Hi everyone

15 messages 2008/06/12

[#305021] array to string conversion — Clement Ow <clement.ow@...>

Hi, I have 2 arrays(which is part of the hash):

13 messages 2008/06/13

[#305058] Circle Drawing (#166) — "Matthew Moss" <matthew.moss@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

19 messages 2008/06/13

[#305100] Documenting Networking in Ruby. Any volunteer — "Victor Reyes" <victor.reyes@...>

Team,

10 messages 2008/06/13

[#305104] raise and rescue — Misiek Sz <nicpon@...>

Is is possible to raise an exception then rescue it and then go back to

13 messages 2008/06/13

[#305160] What was YOUR first Ruby Project — Eric Hegwer <ehegwer@...>

I though it be cool to hear what your first experience with Ruby was.

26 messages 2008/06/14

[#305227] why can't an instance instantiated within a class method access a protected instance method? — "Greg Hauptmann" <greg.hauptmann.ruby@...>

Hi,

10 messages 2008/06/15
[#305228] Re: why can't an instance instantiated within a class method access a protected instance method? — "Greg Hauptmann" <greg.hauptmann.ruby@...> 2008/06/15

(complete email)Hi,

[#305230] How !isset in Ruby — Alexey Tafintsev <alexey@...>

Hello people!

21 messages 2008/06/15
[#305238] Re: How !isset in Ruby — Martin Boese <boesemar@...> 2008/06/15

[#305241] Re: How !isset in Ruby — Robert Klemme <shortcutter@...> 2008/06/15

On 15.06.2008 14:37, Martin Boese wrote:

[#305268] little problem (google hiring puzzle) — ex <exeQtor@...>

Hi guys, I wonder if someone can find a pure ruby solution instead of

43 messages 2008/06/15

[#305334] How to Authenticate against the Windows NT Domain via Ruby — ChessMess <chessmess@...>

We are running a Rails application on Linux RedHat with a requirement

12 messages 2008/06/16

[#305377] print(true and true) #=> the parenthesis issue — hakunin <madfancier@...>

The parenthesis have been discussed before, but maybe this is another

31 messages 2008/06/17

[#305398] Can I find out the memory used by an object? — "Robert Hulme" <robert.hulme@...>

I'm 99% sure the answer to that question is no, but I thought I'd ask anyway :-)

15 messages 2008/06/17

[#305446] parsing text into usablle numerical data — Cthulhu __ <weedmasterp@...>

Hey total ruby n00b here...

13 messages 2008/06/17

[#305467] quick question about how array objects are handled — Chance Dinkins <chanceusc@...>

Btw, thanks in advance for any help - this community seems great!

11 messages 2008/06/17

[#305557] Rather validate values or use exceptions? — Joshua Muheim <forum@...>

Hi all

12 messages 2008/06/18

[#305605] Presentation on Ruby, require suggestions — "Srijayanth Sridhar" <srijayanth@...>

Hello,

14 messages 2008/06/19

[#305635] Why metaclasses? — "James Coglan" <jcoglan@...>

Hello all,

15 messages 2008/06/19

[#305727] Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Urabe Shyouhei <shyouhei@...>

Hi all.

91 messages 2008/06/20
[#305893] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Igal Koshevoy <igal@...> 2008/06/23

All versions of MRI Ruby that claim to fix the vulnerabilities are

[#305934] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Hongli Lai <hongli@...> 2008/06/23

Hi guys. Igal invited me to join this discussion.

[#305936] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Igal Koshevoy <igal@...> 2008/06/23

Hongli Lai wrote:

[#305943] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Hongli Lai <hongli@...> 2008/06/23

Igal Koshevoy wrote:

[#305956] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Igal Koshevoy <igal@...> 2008/06/23

Hongli Lai wrote:

[#306045] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Igal Koshevoy <igal@...> 2008/06/24

We have another potential winning solution!

[#306072] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Robert Thau <rst@...> 2008/06/24

Igal Koshevoy wrote:

[#306135] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Igal Koshevoy <igal@...> 2008/06/24

Robert Thau wrote:

[#306137] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — "Dominic Sisneros" <dsisnero@...> 2008/06/25

Maybe you should try posting a issue on the new redmine bug tracker

[#306139] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Igal Koshevoy <igal@...> 2008/06/25

Dominic Sisneros wrote:

[#306214] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Jason Crystal <jcrystal@...> 2008/06/25

Just wanted to say that we all appreciate those fixes you guys have been

[#306516] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Cheri Anaclerio <canaclerio@...> 2008/06/29

Could somebody please explain how to apply the Smartleaf Stanislav and

[#307002] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Doug Alcorn <dougalcorn@...> 2008/07/02

Igal Koshevoy wrote:

[#305751] Regular expressions and long text — Guillermo.Acilu@...

Hello guys,

15 messages 2008/06/20

[#305810] Where does ruby excel? — Dolazy <francis.rammeloo@...>

I have only used ruby for writing little scripts. Things that are

14 messages 2008/06/21

[#305844] Initial release of amalgalite - v0.1.0 — Jeremy Hinegardner <jeremy@...>

Amalgalite embeds the SQLite database engine in a ruby extension.

13 messages 2008/06/21

[#305854] KABLAME! 0.2.1 Released — "Jacob Dunphy" <jacob.dunphy@...>

This is the first "announced release" of KABLAME!

13 messages 2008/06/22

[#305855] RubyGems 1.2.0 — Eric Hodel <drbrain@...7.net>

= Announce: RubyGems Release 1.2.0

49 messages 2008/06/22

[#305882] Is it ellegant to use a global variable to store a Logger object? — Iñaki Baz Castillo <ibc@...>

Hi, I use Logger class in a programm and since I need to log in lot of=20

49 messages 2008/06/22
[#305884] Re: Is it ellegant to use a global variable to store a Logger object? — Suraj Kurapati <snk@...> 2008/06/22

I単aki Baz Castillo wrote:

[#305885] Re: Is it ellegant to use a global variable to store a Logger object? — Iñaki Baz Castillo <ibc@...> 2008/06/22

El Lunes, 23 de Junio de 2008, Suraj Kurapati escribi=C3=B3:

[#305886] Re: Is it ellegant to use a global variable to store a Logger object? — Suraj Kurapati <snk@...> 2008/06/23

I単aki Baz Castillo wrote:

[#305888] Re: Is it ellegant to use a global variable to store a Logger object? — Iñaki Baz Castillo <ibc@...> 2008/06/23

El Lunes, 23 de Junio de 2008, Suraj Kurapati escribi=C3=B3:

[#306058] Re: Is it ellegant to use a global variable to store a Logger object? — Andrea Fazzi <andrea.fazzi@...> 2008/06/24

I単aki Baz Castillo ha scritto:

[#306066] Re: Is it ellegant to use a global variable to store a Logger object? — Iñaki Baz Castillo <ibc@...> 2008/06/24

El Martes, 24 de Junio de 2008, Andrea Fazzi escribi=C3=B3:

[#306161] Re: Is it ellegant to use a global variable to store a Logger object? — "Robert Klemme" <shortcutter@...> 2008/06/25

2008/6/24 I=F1aki Baz Castillo <ibc@aliax.net>:

[#306168] Re: Is it ellegant to use a global variable to store a Logger object? — "Robert Dober" <robert.dober@...> 2008/06/25

On Wed, Jun 25, 2008 at 11:22 AM, Robert Klemme

[#306176] Re: Is it ellegant to use a global variable to store a Logger object? — Andrea Fazzi <andrea.fazzi@...> 2008/06/25

Robert Dober ha scritto:

[#306180] Re: Is it ellegant to use a global variable to store a Logger object? — "Robert Dober" <robert.dober@...> 2008/06/25

On Wed, Jun 25, 2008 at 3:36 PM, Andrea Fazzi <andrea.fazzi@alca.le.it> wro=

[#306288] Re: Is it ellegant to use a global variable to store a Logger object? — "Shot (Piotr Szotkowski)" <shot@...> 2008/06/26

I=C3=B1aki Baz Castillo:

[#306351] Re: Is it ellegant to use a global variable to store a Logger object? — Iñaki Baz Castillo <ibc@...> 2008/06/26

El Jueves, 26 de Junio de 2008, Shot (Piotr Szotkowski) escribi=C3=B3:

[#306387] Re: Is it ellegant to use a global variable to store a Logger object? — "Shot (Piotr Szotkowski)" <shot@...> 2008/06/27

I=C3=B1aki Baz Castillo:

[#306416] Re: Is it ellegant to use a global variable to store a Logger object? — Iñaki Baz Castillo <ibc@...> 2008/06/27

El Viernes, 27 de Junio de 2008, Shot (Piotr Szotkowski) escribi=C3=B3:

[#306499] Re: Is it ellegant to use a global variable to store a Logger object? — "Shot (Piotr Szotkowski)" <shot@...> 2008/06/28

I=C3=B1aki Baz Castillo:

[#306501] Re: Is it ellegant to use a global variable to store a Logger object? — "ara.t.howard" <ara.t.howard@...> 2008/06/28

[#306085] Sequel primary keys — "Glen Holcomb" <damnbigman@...>

I posted to the Sequel Google Group but it's horribly slow, assuming it took

16 messages 2008/06/24

[#306088] Performance improvement possible? — Philip Rhoades <phil@...>

People,

35 messages 2008/06/24
[#306095] Re: Performance improvement possible? — Rob Biedenharn <Rob@...> 2008/06/24

On Jun 24, 2008, at 12:23 PM, Philip Rhoades wrote:

[#306225] Re: Performance improvement possible? — Philip Rhoades <phil@...> 2008/06/25

Rob,

[#306237] Re: Performance improvement possible? — Chuck Remes <cremes.devlist@...> 2008/06/26

[#306243] Re: Performance improvement possible? — Philip Rhoades <phil@...> 2008/06/26

Chuck,

[#306255] Re: Performance improvement possible? — Rob Biedenharn <Rob@...> 2008/06/26

On Jun 25, 2008, at 8:44 PM, Philip Rhoades wrote:

[#306333] Re: Performance improvement possible? — Eleanor McHugh <eleanor@...> 2008/06/26

On 26 Jun 2008, at 04:24, Rob Biedenharn wrote:

[#306345] Re: Performance improvement possible? — Philip Rhoades <phil@...> 2008/06/26

Eleanor,

[#306350] Re: Performance improvement possible? — Eleanor McHugh <eleanor@...> 2008/06/26

On 26 Jun 2008, at 20:47, Philip Rhoades wrote:

[#306357] Re: Performance improvement possible? — Philip Rhoades <phil@...> 2008/06/26

Ellie,

[#306368] Re: Performance improvement possible? — Eleanor McHugh <eleanor@...> 2008/06/27

On 26 Jun 2008, at 22:51, Philip Rhoades wrote:

[#306234] A cleaner way to pass a block or proc — "Tristin Davis" <tristin.colby@...>

Is there a cleaner way to implement my add_notifier method?

15 messages 2008/06/25
[#306236] Re: A cleaner way to pass a block or proc — Ben Bleything <ben@...> 2008/06/26

On Thu, Jun 26, 2008, Tristin Davis wrote:

[#306245] Re: A cleaner way to pass a block or proc — "Tristin Davis" <tristin.colby@...> 2008/06/26

Thanks Ben. That worked perfect. No other changes required in the class. :)

[#306331] question about defined? and y — Ruby Freak <twscannell@...>

The defined? keyword seems to have some funky behaviors.

19 messages 2008/06/26

[#306420] Statistician I (#167) — "Matthew Moss" <matthew.moss@...>

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

13 messages 2008/06/27

[#306448] changing the shebang of ruby files best way ? — unbewusst.sein@... (Une B騅ue)

I've a lot of ruby files (grabed from net) having a wrong shebang for my

18 messages 2008/06/27
[#306505] Re: changing the shebang of ruby files best way ? — Ryan Davis <ryand-ruby@...> 2008/06/28

[#306524] Random Generation of Characters — Tj Superfly <nonstickglue@...>

How could you generate a list of all possible combination's of lowercase

12 messages 2008/06/29

[#306533] mysterious memory corruption, very confused — Seebs <usenet-nospam@...>

ruby 1.8.7-p22, OS X 10.4.mumble, PostgreSQL 8.3.1, ruby-pg 2008-03-18.

11 messages 2008/06/29

[#306547] Recursive Logic - Examples and Resources? — Dan __ <major_general_joe@...>

Hey all,

13 messages 2008/06/29

[#306620] Threads and Ruby — barjunk <barjunk@...>

I've been hunting around for information regarding threads, and to me,

35 messages 2008/06/30
[#306621] Re: Threads and Ruby — "ara.t.howard" <ara.t.howard@...> 2008/06/30

[#306701] nested methods good or bad design — John Maclean <jayeola@...>

=begin

15 messages 2008/06/30

[#306728] how to - quickly make permutations? — Max Williams <toastkid.williams@...>

can anyone provide an elegant implementation for this method?

18 messages 2008/06/30
[#306761] Re: how to - quickly make permutations? — Frederick Cheung <frederick.cheung@...> 2008/06/30

[#306778] Re: how to - quickly make permutations? — "jim finucane" <jimrails@...> 2008/07/01

each new element tries to double the size of the list

Re: [QUIZ] Statistician I (#167)

From: "Jes俍 Gabriel y Gal疣" <jgabrielygalan@...>
Date: 2008-06-30 07:08:31 UTC
List: ruby-talk #306642
On Fri, Jun 27, 2008 at 5:56 PM, Matthew Moss <matthew.moss@gmail.com> wrote:

> ## Statistician I (#167)
>
> This week begins a three-part quiz, the final goal to provide a little
> library for parsing and analyzing line-based data. Hopefully, each portion
> of the larger problem is interesting enough on its own, without being too
> difficult to attempt. The first part -- this week's quiz -- will focus on
> the pattern matching.
>
> Let's look at a bit of example input:
>
>    You wound Perl for 15 points of Readability damage.
>    You wound Perl with Metaprogramming for 23 points of Usability damage.
>    Your mighty blow defeated Perl.
>    C++ walks into the arena.
>    C++ wounds you with Compiled Code for 37 points of Speed damage.
>    You wound C++ for 52 points of Usability damage.
>
> Okay, it's silly, but it is similar to a much larger data file I'll provide
> end for testing.
>
> You should definitely note the repetitiveness: just the sort of thing that
> we can automate. In fact, I've examined the input above and created three
> rules (a.k.a. patterns) that match (most of) the data:
>
>    [The ]<name> wounds you[ with <attack>] for <amount> point[s] of <kind>[
> damage].
>    You wound[ the] <name>[ with <attack>] for <amount> point[s] of <kind>[
> damage].
>    Your mighty blow defeated[ the] <name>.
>
> There are a few guidelines about these rules:
>
> 1. Text contained within square brackets is optional.
> 2. A word contained in angle brackets represents a field; not a literal
> match, but data to be remembered.
> 3. Fields are valid within optional portions.
> 4. You may assume that both the rules and the input lines are stripped of
> excess whitespace on both ends.
>
> Assuming the rules are in `rules.txt` and the input is in `data.txt`,
> running your Ruby script as such:
>
>    > ruby reporter.rb rules.txt data.txt
>
> Should generate the following output:
>
>    Rule 1: Perl, 15, Readability
>    Rule 1: Perl, Metaprogramming, 23, Usability
>    Rule 2: Perl
>    # No Match
>    Rule 0: C++, Compiled Code, 37, Speed
>    Rule 1: C++, 52, Usability
>
>    Unmatched input:
>    C++ walks into the arena.
>

Hi,

This is my try at this quiz. I thought it would be cool to store the
field "names" too, for each match.
I also added a verbose output to show the field name and the value. As
the goal was to be flexible too,
I made some classes to encapsulate everything, to prepare for the future:

class Match
	attr_accessor :captures, :mappings, :rule
	
	def initialize captures, mappings, rule
		@captures = captures
		@mappings = mappings
		@rule = rule
	end

	def to_s verbose=false
		s = "Rule #{@rule.id}: "
		if verbose
			@rule.names.each_with_index {|n,i| s << "[#{n} => #{@mappings[n]}]"
if @captures[i]}
			s
		else
			s + "#{@captures.compact.join(",")}"
		end
	end
end

class Rule
	attr_accessor :names, :id
	
        # Translate rules to regexps, specifying if the first captured group
        # has to be remembered
	RULE_MAPPINGS = {
		"[" => ["(?:", false],
		"]" => [")?", false],
		/<(.*?)>/ => ["(.*?)", true],
	}
	def initialize id, line
		@id = id
		@names = []
		escaped = escape(line)
		reg = RULE_MAPPINGS.inject(escaped) do |line, (tag, value)|
			replace, remember = *value
			line.gsub(tag) do |m|
				@names << $1 if remember
				replace
			end
		end
		@reg = Regexp.new(reg)
	end
	
	def escape line
		# From the mappings, change the regexp sensitive chars with non-sensitive ones
		# so that we can Regexp.escape the line, then sub them back
		escaped = line.gsub("[", "____").gsub("]", "_____")
		escaped = Regexp.escape(escaped)
		escaped.gsub("_____", "]").gsub("____", "[")
	end
	
	def match data
		m = @reg.match data
		return nil unless m
		map = Hash[*@names.zip(m.captures).flatten]
		Match.new m.captures, map, self
	end
end

class RuleSet
	def initialize file
		@rules = []
		File.open(file) do |f|
			f.each_with_index {|line, i| @rules << Rule.new(i, line.chomp)}
		end
		p @rules
	end
	
	def apply data
		match = nil
		@rules.find {|r| match = r.match data}
		match
	end
end

rules_file = ARGV[0] || "rules.txt"
data_file = ARGV[1] || "data.txt"

rule_set = RuleSet.new rules_file

matches = nil
unmatched = []
File.open(data_file) do |f|
	matches = f.map do |line|
		m = rule_set.apply line.chomp
		unmatched << line unless m
		m
	end
end

matches.each do |m|
	if m
		puts m
	else
		puts "#No match"
	end
end

unless unmatched.empty?
	puts "Unmatched input: "
	puts unmatched
end

#~ puts "Verbose output:"
#~ matches.each do |m|
	#~ if m
		#~ puts (m.to_s(true))
	#~ else
		#~ puts "#No match"
	#~ end
#~ end

In This Thread