Rand Stats

InterceptAllMethods

zef:lizmat

NAME

InterceptAllMethods - export ClassHOW to intercept all method calls

SYNOPSIS

use InterceptAllMethods;
 
class FooBar {
    method ^find_method(Mu $obj, Str $name) {
        return -> | { say "calling $name" }
    }
}

DESCRIPTION

Change the ClassHOW of the compilation unit so that you can create a class that has a ^find_method that will be called for any method call to that class. This method should then return a Callable that will called as if it were the method.

This allows one to implement one's own caching methods, or not have any caching method at all.

AUTHOR

Elizabeth Mattijsen liz@raku.rocks

Source can be located at: https://github.com/lizmat/InterceptAllMethods . Comments and Pull Requests are welcome.

If you like this module, or what I’m doing more generally, committing to a small sponsorship would mean a great deal to me!

COPYRIGHT AND LICENSE

Copyright 2018, 2021, 2023 Elizabeth Mattijsen

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.