Index: openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl,v diff -u -r1.8 -r1.8.2.1 --- openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl 24 Sep 2002 09:16:37 -0000 1.8 +++ openacs-4/packages/acs-bootstrap-installer/tcl/00-proc-procs.tcl 21 Jan 2003 19:27:18 -0000 1.8.2.1 @@ -378,17 +378,81 @@ [doc_string] body } { - Declare a procedure. +
+ Declare a procedure with the following enhancements + over regular Tcl "proc": +
+ ++
+ Here's an example with named parameters, and namespaces (notice the preferred way of + declaring namespaces and namespaced procedures). Disconsider the "\" in "\@param", + I had to use it so the api-browser wouldn't think the parameter docs were for ad_proc + itself: +
++
+namespace eval ::foobar {}
+
+ad_proc -public ::foobar::new {
+ {-oacs_user:boolean}
+ {-shazam}
+ {-user_id ""}
+} {
+ The documentation for this procedure should have a brief description of the
+ purpose of the procedure (the WHAT), but most importantly, WHY it does what it
+ does. One can read the code and see what it does (but it's quicker to see a
+ description), but one cannot read the mind of the original programmer to find out
+ what s/he had in mind.
+
+ \@author Roberto Mello
+ \@creation-date 2002-01-21
+
+ \@param oacs_user If this user is already an openacs user. oacs_user_p will be defined.
+ \@param shazam Magical incantation that calls Captain Marvel.
+ \@param user_id The id for the user to process. Default will be ""
+ (api-browser will show the default automatically)
+} {
+ if { [empty_string_p $user_id] } {
+ # Do something if this is not an empty string
+ }
+
+ if { $oacs_user_p } {
+ # Do something if this is an openacs user
+ }
+}
+
+
+
@param public specifies that the procedure is part of a public API.
@param private specifies that the procedure is package-private.
@param deprecated specifies that the procedure should not be used.
- @param warn specifies that the procedure should generate a warning when invoked (requires that
- -deprecated also be set)
+ @param warn specifies that the procedure should generate a warning
+ when invoked (requires that -deprecated also be set)
@param arg_list the list of switches and positional parameters which can be
provided to the procedure.
@param [doc_string] documentation for the procedure (optional, but greatly desired).