Futilities/human/lib/caAppBase: Difference between revisions
No edit summary |
|||
Line 20: | Line 20: | ||
** Ensures that the App object has been set up properly; emits helpful messages if not. | ** Ensures that the App object has been set up properly; emits helpful messages if not. | ||
** Returns version string, formatted nicely. | ** Returns version string, formatted nicely. | ||
** '''Note''': | ** '''Note''': {{l/same|caMatch}} and {{l/same|caOptsBase}} each also have a method by this name. |
Latest revision as of 19:34, 19 October 2022
Human Futilities:
caAppBase class |
About
This class-family is intended as a kind of handy framework for managing the overall flow of each Futility. It's configured using static methods, and then begins executing as soon as it is instantiated. The object created does not need to be retained by the main process; everything happens inside of it.
Class
Since this base class is abstract, each Futility app must cement it with a podling class. Standard practice is to name the concrete podling class cApp
.
Creating the App object does the following (in the constructor):
- displays standard information identifying the app (it will let the coder know if the necessary details have not been set
- app name and version string
- summary of command format
- opens csTTY for output
- creates the Options object
- invokes the
Go()
function, which must be cemented by each application.
Typical cementing of Go()
starts by examining the Options object (via the Options()
function, and doing any needed setup as determined by user input arguments.
Actual processing is then sent through either the Options (caOptsBase podling) object (e.g. $this->Options()->DoCompare()
) or, for operations involving spidering, a cFolderator object (e.g. $of = new cFolderator; $of->StartSpider($oOpts->Matcher());
).
Methods
- DescribeSelf() : string
- Ensures that the App object has been set up properly; emits helpful messages if not.
- Returns version string, formatted nicely.
- Note: caMatch and caOptsBase each also have a method by this name.