[rt-devel] lib/RT/Ticket.pm introspection callback for Kanban 4.2.12 rt-extension-kanban

Christian Loos cloos at netcologne.de
Wed Mar 2 09:15:39 EST 2016


You can't overwrite parts of a method in Perl, you can only overwrite
the whole method.

But you actually don't want to override a method, you want to call a
custom method, or additional code, inside an existing function.

When you overwrite the RT::Ticket Create method and then call inside
this the original Create method, the Create method from the installed RT
is called.
So if you install your extension in RT 4.2.0, the 4.2.0 version of the
Create method is called, if you install your extension in RT 4.2.12, the
4.2.12 version of the Create method is called.

With this solution you can provide your extension for a wider range of
RT version.

Have you looked at the example link from my previous mail?
They overwrite there the RT::Interface::Email->ExtractTicketId method,
and call the original method inside this on line 114.

Chris

Am 02.03.2016 um 14:41 schrieb Joachim Schiele:
> i understand this like that:
> complete functions can be overriden like this but not single sections of
> a function as in a patch.
> 
> if my understanding is correct, then the method you proposed would
> require us to supply 3 Ticket.pm functions for each individual rt
> release as these implementations might change over time.
> 
> correct?
> 
> On 02.03.2016 14:19, Christian Loos wrote:
>> > Hi Joachim,
>> > 
>> > actually this isn't necessary.
>> > You can overwrite the Create method and call inside your Create method
>> > the original Create method.
>> > 
>> > Have a look at this:
>> > https://github.com/bestpractical/rt-extension-repliestoresolved/blob/master/lib/RT/Extension/RepliesToResolved.pm#L102-L146



More information about the rt-devel mailing list