[Nitro] Facets 2.0

TRANS transfire at gmail.com
Mon Jan 29 21:07:18 EST 2007


NOTE: I'm corss posting this to Nitro list. if you would like to
comment on it from that list please sign up for the Facets mailing
list: http://rubyforge.org/mailman/listinfo/facets-universal.
***

Shortly (once the new 1.8 has settled down a bit) I will tag Facets as
1.9 and work on it as a development version toward 2.0. I have some
significant plans ahead for the 2.0 series. Here's waht it the works:

* major code audit. i plan sift through most, if not all of code and
make various decsions --is it even worth having, does the
implementation need improvements, how about the docs, is it tested
well enough, etc. and try to fix as much as possible in that regard

* get rid of the self/ folders. i've come to the conclusion that the
odds of a clash between an instance method and class method are low
enough that it doesnt really matter. and when it does happen it's
usually b/c there is a relationship between the methods -- so it's not
big deal if you happen to get two methods for the require of one. this
is how punctuated methods (!, ?, =) work too.

* i want to get rid of the facet/ redirect folder (this is the one
that redirects everything back to facets/core or facets/more). I could
do this by merging core and more. into a single facets/ lib, but that
would be harder to manage. howerver it's not quite as it seems b/c....

* i would like to give each more lib (or in some cases, closely
related libs) their own project folder. in doing so, each can have
it's own versioning and each can be packaged and distributed
individually. of course, i still want to offer the full facets package
too. so i have to figure out a reasonable way to have both. I've
considered just allowing the subpackages to live in facets lib/ dir.
Ie.

  facets/
    ProjectInfo
    lib/
      annotations/
        ProjectInfo
        lib/
          facets/
            ann.rb

then when using facets, require 'facets' would add to the $LOAD_PATH,
eg $LOAD_PATH << 'facets/lib/annotations/lib'. but i'm not sure how
good an idea this is. obviously it burdens the require system (which
gems does too btw) and i'm not sure how well it will play with gems
actually. any other ideas for how to do this in a DRY manner?

any other suggestions for the future Facets 2.0 are very very welcome.

thanks,
T.


More information about the Nitro-general mailing list