Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

deciphering RT source code layout

by Anonymous Monk
on Oct 07, 2005 at 17:10 UTC ( [id://498268]=perlquestion: print w/replies, xml ) Need Help??

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 ! : )

Replies are listed 'Best First'.
Re: deciphering RT source code layout
by ghenry (Vicar) on Oct 07, 2005 at 17:24 UTC
      thanks, i have ordered the book today :) , but i was hoping for some pointers in the meantime : )

        I've updated the node to save you some work.

        Walking the road to enlightenment... I found a penguin and a camel on the way.....
        Fancy a yourname@perl.me.uk? Just ask!!!
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'
    
      Have a look RT wiki:

      http://wiki.bestpractical.com/index.cgi?Documentation

      Maybe it helps you.

      ---
      Michael Stepanov aka nite_man

      It's only my opinion and it doesn't have pretensions of absoluteness!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://498268]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (2)
As of 2024-04-26 03:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found