"Materialized Paths" Hierarchies and Rails

Hi Daniel,

I've been helping Jean-Christophe Michel with the Better Nested Set plugin (http://opensource.symetrie.com/trac/better_nested_set).

I'm interested in anything that offers efficient management of large hierarchical data-sets in Rails, so I'd love to see a materialized path implementation. Regarding development, I would like to share thoughts and ideas (at a minimum, I suppose it would be good if we tried to keep the APIs similar). In any case, please keep me updated on what you do.

I'm looking at your DBIx module, but as someone who's never used Perl, I'm wondering how to generate the documentation (how do you say 'rake rdoc' in Perl?).

You've probably already looked at Better Nested Set, but if not, you can install it with:     script/plugin install svn://rubyforge.org/var/svn/betternestedset/trunk then run 'rake rdoc' in the betternestedset directory.

Cheers, Krishna

awesome of have a standard API so that you can easily switch between schemes.

Definitely. Let's plan on it.

changing between the two plugins would automatically convert the tree behind the scenes. . .

I'm not sure about automagically adding columns to the table, but we've made the rest of it pretty easy in BetterNestedSet: once you have the columns, just run a single method and it turns your existing ordinary (adjacency list) trees into nested sets.

Maybe the best way we could work together now would be to standardize the API - I knownestedsets pretty well, and we can define an API that'll offer the flexibility we need for both implementations.

Sounds like a plan. After you get a chance to look over the BetterNestedSet API, let us know what changes/extensions you might want. I'm actually playing with some experimental changes to how our API works, so I'll try to get those committed soon.

Would you like to continue this discussion here, or move it to the BetterNestedSet mailing list? (http://rubyforge.org/mailman/listinfo/betternestedset-talk)

Cheers, looking forward to hashing it out.

k