Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
Hi,
my company's using an issue-tracking system called "RT" (http://bestpractical.com/rt/)
, which is written in Perl using HTML:Mason. I'm trying to get familiar with how the source code is laid out, and it's been a tough slog, cause they dont have any developer documentation as far as explaining how the source code is laid out. I was hoping some revered Monks might be familiar with it and give me some pointers.
Now, dont laugh, but I've been trying to find out which source code file is responsible for inserting the data into the associated mysql database, but, for the life of me, i cant seem to figure this out.... help ! : )
Re: deciphering RT source code layout
by ghenry (Vicar) on Oct 07, 2005 at 17:24 UTC
|
| [reply] |
|
thanks, i have ordered the book today :) , but i was hoping for some pointers in the meantime : )
| [reply] |
|
| [reply] |
Re: deciphering RT source code layout
by eXile (Priest) on Oct 08, 2005 at 13:41 UTC
|
RT uses DBIx::SearchBuilder for it's SQL, you can look into $RT/lib/RT/SearchBuilder.pm for how exactly (where $RT is your RT installation dir).
One thing that took me a while to figure out is that methods for all RT objects (Queues,Tickets, ..) are a little scattered across files. I haven't found a good description for it's API yet, so I'm using the source to find what methods can be called on certain objects. For instance for Tickets, there is $RT/lib/RT/Ticket.pm $RT/lib/RT/Ticket_Overlay.pm , $RT/lib/RT/Tickets.pm $RT/lib/RT/Tickets_Overlay.pm , $RT/lib/RT/Tickets_Overlay_SQL.pm , and inheritance of course.
I created myself a quick-and-dirty overview of methods like this (while in the $RT/lib dir):
find . -name "*.pm" | xargs egrep '^sub'
| [reply] |
|
| [reply] |
|