NAME¶
Jifty::Plugin::ClassLoader - Automatically generates application classes
DESCRIPTION¶
"Jifty::Plugin::ClassLoader" loads additional model and action classes
on behalf of the application out of the configured plugin classes. Unlike,
"Jifty::ClassLoader", this class will only autogenerate classes if
the plugin provides them. The plugin classes are checked before the base Jifty
classes, so that a plugin can override the Jifty class, just as any existing
application classes will be loaded first.
new¶
Returns a new ClassLoader object. Doing this installs a hook into @INC that
allows Jifty::Plugin::ClassLoader to dynamically create needed classes if they
do not exist already. This works because if use/require encounters a blessed
reference in @INC, it will invoke the INC method with the name of the module
it is searching for on the reference.
Takes two mandatory arguments, "base", which should be the
application's base path; and "plugin" which is the plugin classname.
INC¶
The hook that is called when a module has been "require"'d that cannot
be found on disk. The following stub classes are auto-generated:
- Application
- An empty application base class is created that doesn't
provide any methods or inherit from anything.
- Application::Record
- An empty class that descends from Jifty::Record is
created.
- Application::Collection
- An empty class that descends from Jifty::Collection is
created.
- Application::Notification
- An empty class that descends from Jifty::Notification.
- Application::Dispatcher
- An empty class that descends from Jifty::Dispatcher.
- Application::Bootstrap
- An empty class that descends from Jifty::Bootstrap.
- Application::Upgrade
- An empty class that descends from Jifty::Upgrade.
- Application::CurrentUser
- An empty class that descends from Jifty::CurrentUser.
- Application::Model::AnythingCollection
- If "Application::Model::Something"
is a valid model class, then it creates a subclass of Jifty::Collection
whose "record_class" is "
Application::Model::Something".
- Application::Action::(Create or Update or
Delete)Anything
- If "Application::Model::Something"
is a valid model class, then it creates a subclass of
Jifty::Action::Record::Create, Jifty::Action::Record::Update, or
Jifty::Action::Record::Delete whose record_class is
"Application::Model:: Something".
require¶
Loads all of the application's Actions and Models. It additionally
"require"'s all Collections and Create/Update actions for each Model
base class -- which will auto-create them using the above code if they do not
exist on disk.
DESTROY¶
When the ClassLoader gets garbage-collected, its entry in @INC needs to be
removed.