[Nitro] Ratchets releases: projectinfo, exacto, autorake

transfire at gmail.com transfire at gmail.com
Thu Feb 15 05:36:53 EST 2007

On Feb 15, 3:48 am, "Michael Fellinger" <manv... at weez-int.com> wrote:

> Ok, after trying it... a couple of questions :)
> - I need a way to say my tests are in spec/tc_*

In ProjectInfo you can use

  tests: spec/tc_*.rb


  test_files: spec/tc_*.rb


    files: spec/tc_*.rb

these should all be synonomous. also note, that i put the .rb on there
just as an extra precaution --it's not required, and also you can
specifiy more than one glob in an array if you need it. For example:

     - test/tc_*.rb
     - spec/tc_*.rb

> - The MANIFEST lists all files, i got some non-ruby files as well, for
> which ruby -c fails, is there a way to only let it run over .rb files?

The manifest or syntax task? If syntax, you should be able to set

  scripts: lib/**/*.rb

I just fixed a bug and that will now be the default in >0.5.2, but I'm
not 100% about the name of that setting yet. But if you mean the
manifest that's defined by

  distribute: **/*

Since the intent of the manifest is to list all files that will be
included in the distributed package, by default that includes
everything minus "project.ignore" which contains typical exclusions
(like _darcs). You can set distribute straight (though ignore is
always excluded) or you can easily adjust it with a '-' prefix too.
For example I often have a scrap directory to store old code that I'm
not quite ready to throw away. So I have:

  distribute: [ -scrap ]   # yes, this can be an array too

it's a recursive glob btw, so everything within scrap/ is excluded.

> - How exactly do autorake and ProjectInfo cooperate? does autorake use my
> ProjectInfo automagically?

Essentially yes. In autorake there's a Project class that delegates to
ProjectInfo via #info. Then all the actual tasks are defined as
methods of Project and each snags information from #info as needed. I
had planned to define the task and the code that pulls the info it
needs separately, but I let that SOC go for now. The ProjectIndfo
class itself makes things easier by offering defaults and also by the
way it loads. An entry like:

    files: **/test*.rb

actually maps to ProjectInfo#test_files.

> Maybe some more questions later... gotta go...
> All in all it seems like a really nice rake that finally understands it's
> not only about tasks but about tasks for a specific project, i find that
> very positive :)

That's it exactly, well put. And I am very glad to hear it. Let me
know if you have any other troubles or suggestions. I just fixed a
couple bugs and uploaded 0.5.1.

> And thanks for all the fish.

All 42 ;) Whew, it's late and I'm very tired. Nite.


More information about the Nitro-general mailing list