Jifty::Plugin::ClassLoader(3pm) User Contributed Perl Documentation Jifty::Plugin::ClassLoader(3pm)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.
perl v5.14.2 2010-12-08 Jifty::Plugin::ClassLoader(3pm)
Check Out this Related Man Page
Jifty::Action::Record(3pm) User Contributed Perl Documentation Jifty::Action::Record(3pm)NAME
Jifty::Action::Record -- An action tied to a record in the database.
DESCRIPTION
Represents a web-based action that is a create, update, or delete of a Jifty::Record object. This automatically populates the arguments
method of Jifty::Action so that you don't need to bother.
To actually use this class, you probably want to inherit from one of Jifty::Action::Record::Create, Jifty::Action::Record::Update, or
Jifty::Action::Record::Delete. You may need to override the "record_class" method, if Jifty cannot determine the record class of this
action.
METHODS
record
Access to the underlying Jifty::Record object for this action is through the "record" accessor.
record_class
This method can either be overridden to return a string specifying the name of the record class, or the name of the class can be passed to
the constructor.
report_detailed_messages
If the action returns true for "report_detailed_message", report the message returned by the model classes as the resulting message. For
Update actions, Put the per-field message in "detailed_messages" field of action result content. The default is false.
new PARAMHASH
Construct a new "Jifty::Action::Record" (as mentioned in Jifty::Action, this should only be called by "framework->new_action". The
"record" value, if provided in the PARAMHASH, will be used to load the "record"; otherwise, the primary keys will be loaded from the
action's argument values, and the "record" loaded from those primary keys.
arguments
Overrides the "arguments" in Jifty::Action method, to automatically provide a form field for every writable attribute of the underlying
"record".
This also creates built-in validation and autocompletion methods (validate_$fieldname and autocomplete_$fieldname) for action fields that
are defined "validate" or "autocomplete". These methods can be overridden in any Action which inherits from this class.
Additionally, if our model class defines canonicalize_, validate_, or autocomplete_ FIELD, generate appropriate an appropriate
canonicalizer, validator, or autocompleter that will call that method with the value to be validated, canonicalized, or autocompleted.
"validate_FIELD" should return a (success boolean, message) list.
"autocomplete_FIELD" should return a the same kind of list as Jifty::Action::_autocomplete_argument
"canonicalized_FIELD" should return the canonicalized value.
possible_columns
Returns the list of columns objects on the object that the action can update. This defaults to all of the "containers" or the
non-"private", non-"virtual" and non-"serial" columns of the object.
possible_fields
Returns the list of the "possible_columns"' names.
Usually at the end names are required, however for subclassing column objects are better, or this method in a subclass turns out to be "map
to column" - "filter" - "map to name" chain.
take_action
Throws an error unless it is overridden; use Jifty::Action::Record::Create, ::Update, or ::Delete
SEE ALSO
Jifty::Action, Jifty::Record, Jifty::DBI::Record, Jifty::Action::Record::Create, Jifty::Action::Record::Update,
Jifty::Action::Record::Delete
LICENSE
Jifty is Copyright 2005-2010 Best Practical Solutions, LLC. Jifty is distributed under the same terms as Perl itself.
perl v5.14.2 2011-02-21 Jifty::Action::Record(3pm)