Help-Site Computer Manuals
  Algorithms & Data Structures   Programming Languages   Revision Control
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

The Jifty dictionary

Jifty::Manual::Glossary - The Jifty dictionary


Jifty::Manual::Glossary - The Jifty dictionary


We use words. This is what they mean.

An action is a specifically designed RPC call that can do something to the system, with any number of declared parameters. At runtime, an action can take arguments, which it canonicalizes, validates, and then uses to do something useful. Each action has a result. See the Jifty::Action manpage and the Jifty::Manual::Actions manpage.

For an action to run, it needs to be active. Most of the time, all actions submitted are active, but it is possible to specify only a specific action as active; any non-active actions are ignored. See the Jifty::Request manpage.

An acronym standing for Asynchronous Javascript And XML. Though technically incorrect, it is the buzzword that describes doing asynchronous requests to the server while the user waits. This can lead to very ``dynamic'' pages, as the browser does not need to refresh the entire page to update a small section of the screen. In Jifty, the sections of the screen are called regions. See the Jifty::Web::PageRegion manpage.

An argument is a user-supplied input to fill in a parameter in an action. See the Jifty::Action manpage.

To turn an argument into a more standard form. For instance, a canonicalizer could translate a user-typed date into a date object or a SQL-formatted date string. See the Jifty::Action manpage.

A /collection is a class representing all or a subset of the records stored in the database regarding a particular model. See the Jifty::Collection manpage.

A property of a parameter; the action must have an argument value for this paramater in order to be constructed. This is different from mandatory, in that the user can leave mandatory fields empty. For instance, the id of a the Jifty::Action::Record::Update manpage is a constructor. See the Jifty::Action manpage.

A concept stolen from Lisp, Scheme, Smalltalk, and Perl 6. The continuation of any particular piece of code is the deferred operations that care about the return value at that point. In the context of Jifty, a continuation is a deferred request that may pull arguments and the like from the results of the current request. Continuations can be arbitrarily nested, so they are often useful to keep track of tangents that the user went on. See the Jifty::Continuation manpage.

database version
The database version is the schema version last installed or updated in the application's database. In general, the database version will always match the schema version. The exception is when Jifty is updated to a new schema version, your application updates to a new schema version, or a plugin updates to a new schema version. When this happens, you must update your database so that the database versions and schema versions match before running your application.

form field
A widget which the browser renders. These are generally useful to ask the user for a value for an argument to an action. See the Jifty::Web::Form::Field manpage.

A section of HTML (at present, a Mason component) contained in a region. Fragments are a kind of standalone Mason component which the browser can request individually. Because of this, they can only take strings and scalars as arguments, not references or objects!

A Mason component used by one or more other pages, which is not a whole page of itself. As opposed to fragments elements are strictly internal, and never visible to the outside world by themselves. Elements typically live under a path beginning with or containing '/_elements'. This, and the whole idea of an element is strictly convention, but Jifty contains elements for things like page headers, menus, and showing keybindings out of the box to make your life easier.

A property of a parameter; the user must enter a value for the action to validate. This is the simplest level of validation.

Jifty uses the Jifty::DBI manpage to store its data (though might use other storage tools at some later time). The model defines the schema and provides a package for creating, reading, updating, and deleting records stored in the database. The model is generally a subclass of the Jifty::Record manpage. Access multiple items from a model is performed through a collection.

Every instance of a the Jifty::Action manpage has a moniker. Monikers serve as identifiers for actions, to associate arguments with actions and to access specific actions ``by name''. Monikers need not be globally unique, but they must be unique within a single request. Monikers have no semantic meaning. See monikers in the Jifty::Action manpage

A moniker is an arbitrary-length nonempty string containing no semicolons. It may not begin with a digit.

A parameter is a named parameter to an action. Jifty generally renders these on the screen as form fields. See the Jifty::Param manpage and the Jifty::Param::Schema manpage.

An area of the page which JavaScript can replace. The content in the region is a fragment. Think of the region as the box and the fragment as the content in the box. See the Jifty::PageRegion manpage.

A single query which lists actions to run, together with a page or list of fragments to return. This most often comes from the browser as query parameters, but may come from other sources as a JSON or YAML POST request. The answer to a request is a response. See the Jifty::Request manpage.

The answer to a request, it contains a result for every action that ran. See the Jifty::Response manpage.

The answer to a action, it contains information about if the action was a success or failure, and further detail about why or how. It can also contain arbitrary ``content''. See the Jifty::Result manpage.

After performing a tangent a user may perform a return to invoke the continuation created by the original tangent.

The schema for a model represents the structure of the data stored in an individual item in that model's collection. See the Jifty::DBI::Schema manpage.

schema version
The schema version is a number in version object used to determine which database version your application code is expecting to use. There are three places where the schema version is important:
  1. Jifty application version. The Jifty application stores some details in the database.

  2. Your database version. Your application keeps a database version recorded in the configuration. See the Jifty::Config manpage.

  3. Plugin versions. Each plugin has a version associated with it affecting whatever /models it uses.

If any of these versions differs from their respective database versions, then you need to run the Jifty::Script::Schema to upgrade to the latest schema version.

Contrast with database version.

A property of form fields. If a field is ``sticky,'' values that the user entered appear there again when the page is rendered again, avoiding making the user type them again. Most actions have form fields which are sticky on failure, so the user can update the information and try again.

A tangent is a link or redirect that causes Jifty to save the current state into a continuation for a later return. This operation is handy for situations when you want to jump to another page or form, but return to this page when the user is done with the ``tangent'' page. Because of the use of continuations, this can be especially handy because a user could go on multiple tangents and eventually return to the start.

Generally, your Jifty application will change over time. Most of these changes will be simple changes to behavior or appearance. When changes are made to the schema structure of your database, you may need to perform an upgrade. An upgrade is the process by which you rename columns, initialize data, or otherwise update information that needs to be updated when a change to the database needs to be made. See the Jifty::Upgrade manpage, the Jifty::Manual::Upgrading manpage, and the Jifty::Script::Schema manpage.

To check that the provided value of an argument is a possible value for it to have. See the Jifty::Web::Form::Field manpage.