Hi,
I am returning to a bit of Ruby hacking after spending a couple of years away from it. I met someone who is newer to Ruby and caught some of their excitement for it (Hi Dan).
My day job has me writing Java code. As many of you will know the default build tool for Java projects is ANT. ANT is a step forward from the pre-ANT world, but has problems – one of the big ones is that it is XML based, and thus verbose. XML as good as YAML for data, and not as good as Ruby for programming :).
Dan and I were talking about building a Ruby replacement for ANT. One week-end we both decided to start writing it, and came up with test-cases… Dan came up with a name (BOB), and there is now a piece of vapourware.
My test cases are to do with ANT FileSetish behavour.
Ant has some interesting globbing functionality that works very similar to File::fnmatch, but slightly different.
I like the ant way, but don’t want to suprise Ruby people.
Here is the test cases that talk about the behaviour I want.
File.fnmatch would provide similar functionality (with File::FNM_PATHNAME it comes really close), except I don’t see that the last test could past easily.
Before I make the last test pass, I want to know if Ruby people would find the behaviour described to be suprising?
matcher = FilePatternMatcher.new
assert(matcher.match("test.txt", "test.txt"))
assert(matcher.match("test.txt", "*"))
assert(matcher.match("second.txt", "*"))
assert(matcher.match("test.txt", "*.txt"), "*.txt should match test.txt")
matcher = FilePatternMatcher.new
assert(matcher.match("test.txt", "test.*"), "test.* should match test.txt")
assert(!matcher.match("somedirectory/test.txt", "*.txt"), "*.txt should not match somedirectory/test.txt")
assert(!matcher.match("test.txt", "*.doc"))
assert(matcher.match("first/second/test.txt", "**/test.txt"))
assert(!matcher.match("first/second/third/fourth/fifth/test.txt", "**/third/*/test.txt"))
···
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.522 / Virus Database: 320 - Release Date: 30/09/2003