change example to override a real function
authorJoey Hess <joey@kodama.kitenet.net>
Tue, 21 Oct 2008 21:09:57 +0000 (17:09 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Tue, 21 Oct 2008 21:09:57 +0000 (17:09 -0400)
plugins/externaldemo

index fa93e672d86f24c1e253d20717e4c09b19109be1..4d13f244453badfb4eaaa406611d5b64047b2fe6 100755 (executable)
@@ -101,16 +101,16 @@ sub import {
        # stage of ikiwiki.
        rpc_call("hook", type => "preprocess", id => "externaldemo", call => "preprocess");
 
-       # Here's an example of how to inject an arbitrary function into
-       # ikiwiki. Ikiwiki will be able to call bob() just like any other
-       # function. Note use of automatic memoization.
-       rpc_call("inject", name => "IkiWiki::bob", call => "bob",
-               memoize => 1);
-
        # Here's an exmaple of how to access values in %IkiWiki::config.
        print STDERR "url is set to: ".
                rpc_call("getvar", "config", "url")."\n";
 
+       # Here's an example of how to inject an arbitrary function into
+       # ikiwiki, replacing a core function.
+       # Note use of automatic memoization.
+       rpc_call("inject", name => "IkiWiki::formattime",
+               call => "formattime", memoize => 1);
+
        print STDERR "externaldemo plugin successfully imported\n";
 }
 
@@ -126,8 +126,9 @@ sub preprocess {
        return "externaldemo plugin preprocessing on $title!";
 }
 
-sub bob {
-       print STDERR "externaldemo plugin's bob called via RPC";
+sub formattime {
+       print STDERR "externaldemo plugin's formattime called via RPC";
+       return scalar "formatted time: ".localtime(shift);
 }
 
 # Now all that's left to do is loop and handle each incoming RPC request.