Austin Ziegler wrote:
> On 3/23/06, Justin Bailey <jgbailey / gmail.com> wrote:
> > Care to elaborate? Not asking for a flame war or anything. I've used
> > Rails quite a bit and wanted to give Nitro a try on a toy project to
> > see how I like it, but I've also tried to use Facets before and found
> > it to not be well-documented, which irritated me. What is it about
> > Facets you are concerned with?
>
> The documentation problem is part of it. There have been attribution
> problems in the past, but I think that those are mostly fixed, and the
> licensing issue is still not 100% clear (the copyright and licence
> granted are for the *collection* facets; individual facet
> implementations may be under different licences). Mostly, I have issues
> with the changes that facets makes -- or has made in the past --
> #require and some of the schemes that the primary maintainer has come up
> with. They're both ugly and unworkable.
>
> I think that Gavin Sinclair's "extensions" is a much better approach --
> group related code, don't separate things into individual files
> unnecessarily.

Well, documentation of Facets, I think, is actually fairly good
compared to many projects. Understand that there are over 400 methods
and over 60 modules in there, so it's a lot to keep on top of. The fact
that the vast majority of this work does have documentation --a
explanation and an example or two, I'd say, is pretty good. Some of the
main docs have gotten out of sync with developement but that's b/c the
last fve months or so were a difficult time of working out an cleaner
organization for the two library sections. I've been trying to have a
single lib for both extensions and additions, but it hasn't been easy
and twice I've all but given up and gone back to two separate projects.
But as of yesterday actually, that has been resloved.

As for mucking with the underlying Ruby. You couldn't be more wrong.
Only a dozen or so  methods do any mucking about and these are listed
in an "noauto" file so as not to be included in any multi-facet
require. You can use them if you know what you are doing, but you have
to ask for them specifically. And that's really the thing about Facets.
Since it is utilized by selecting the specific methods you want to use
and no more, actual efffects are minimized, which is the benefit of
it's atomicity. This is unlike ActiveSupport where everything is
preloaded.

> problems with the changes that facets makes -- or has made in the past --
> #require and some of the schemes that the primary maintainer has come up
> with. They're both ugly and unworkable.

As for this, you are refering to a one time attemp of mine to use a
special method for loading the methods. Eg. 'String.use Facets,
:blank?' This method has advantages, but it wasn't popular simply
because it's not a common idiom for loading extenal code. I understand
that and so I got rid of it.

T.