Jifty::Record - Represents a Jifty object that lives in the database.
Jifty::Record is a kind of Jifty::Object that has a database representation; that is, it is also a Jifty::DBI::Record as well.
Jifty::Record
create can be called as either a class method or an object method.
create
Takes an array of key-value pairs and inserts a new row into the database representing this object.
Override's Jifty::DBI::Record in these ways:
id
Returns the record id value. This routine short-circuits a much heavier call up through Jifty::DBI
load_or_create can be called as either a class method or an object method. It attempts to load a record with the named parameters passed in. If it can't do so, it creates a new record.
load_or_create
Should return true if the current user ($self->current_user) is allowed to do RIGHT. Possible values for RIGHT are:
$self->current_user
Called just before an object's create method is called, as well as before parameter validation. ATTRIBUTES is the attributes that the object is trying to be created with, as the attributes aren't on the object yet to be inspected.
Called before any attribute is accessed on the object. ATTRIBUTES is a hash with a single key column and a single value, the name of the column being queried.
column
Called before any attribute is changed on the object. ATTRIBUTES is a hash of the arguments passed to _set.
Called before the object is deleted.
The default implementation returns true if the current user is a superuser or a boostrap user. If the user is looking to delegate the access control decision to another object (by creating a delegate_current_user_can subroutine), it hands off to that routine. Otherwise, it returns false.
delegate_current_user_can
Internal helper to call "current_user_can" with create.
Internal helper to call "current_user_can" with read.
read
Passes column as a named parameter for the column the user is checking rights on.
Internal helper to call "current_user_can" with update.
update
Internal helper to call "current_user_can" with delete.
delete
Returns a copy of this object with the current_user set to the superuser. This is a convenient way to duck around ACLs if you have code that needs to for some reason or another.
A method ripped from the pages of Jifty::DBI::Record so we could change the invocation method of the collection generator to add a current_user argument.
Overrides Jifty::DBI::Record to check the delete ACL.
When displaying a list of records, Jifty can display a friendly value rather than the column's unique id. Out of the box, Jifty always tries to display the 'name' field from the record. You can override this method to return the name of a method on your record class which will return a nice short human readable description for this record.
This is the Jifty::DBI function that is called when you fetch a value which REFERENCES a Record class. The only change from the Jifty::DBI code is the arguments to new.
REFERENCES
new
Returns a unique key for this application for the Memcached cache. This should be global within a given Jifty application instance.
By default, all models exist since undef, the ur-time when the application was created. Please override it for your model class.
undef
When called, this method will generate the SQL schema for the current version of this class and return it as a scalar, suitable for printing or execution in your database's command line.
When called, this method will generate the SQL schema for the current version of this class and insert it into the application's currently open database.
Returns the SQL statement neccessary to add column_name to this class's representation in the database
column_name
Returns the SQL statement neccessary to remove column_name from this class's representation in the database
This method is used by Jifty::DBI::Record to determine which schema version is in use. It returns the current database version stored in the configuration.
Jifty's notion of the schema version is currently broken into two:
The Jifty version is the first. In the case of models defined by Jifty itself, these use the version found in $Jifty::VERSION.
$Jifty::VERSION
Any model defined by your application use the database version declared in the configuration. In etc/config.yml, this is lcoated at:
framework: Database: Version: 0.0.1
A model is considered to be defined by Jifty if it the package name starts with "Jifty::". Otherwise, it is assumed to be an application model.
To install Jifty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Jifty
CPAN shell
perl -MCPAN -e shell install Jifty
For more information on module installation, please visit the detailed CPAN module installation guide.