App::CELL::Message(3) handle messages the user might see

SYNOPSIS


use App::CELL::Message;
# server messages: pass message code only, message text
# will be localized to the site default language, if
# assertainable, or, failing that, in English
my $message = App::CELL::Message->new( code => 'FOOBAR' )
# and then we pass $message as an argument to
# App::CELL::Status->new
# client messages: pass message code and session id,
# message text will be localized according to the user's language
# preference setting
my $message = App::CELL::Message->new( code => 'BARBAZ',
session => $s_obj );
$msg_to_display = $message->App::CELL::Message->text;
# a message may call for one or more arguments. If so,
# include an 'args' hash element in the call to 'new':
args => [ 'FOO', 'BAR' ]
# they will be included in the message text via a call to
# sprintf

EXPORTS AND PUBLIC METHODS

This module provides the following public functions and methods:
"new" - construct a "App::CELL::Message" object
"text" - get text of an existing object
"max_size" - get maximum size of a given message code

DESCRIPTION

An App::CELL::Message object is a reference to a hash containing some or all of the following keys (attributes):
"code" - message code (see below)
"text" - message text
"error" - error (if any) related to this message
"language" - message language (e.g., English)
"max_size" - maximum number of characters this message is guaranteed not to exceed (and will be truncated to fit into)
"truncated" - boolean value: text has been truncated or not

The information in the hash is sourced from two places: the $mesg hashref in this module (see ``CONSTANTS'') and the SQL database. The former is reserved for ``system critical'' messages, while the latter contains messages that users will come into contact with on a daily basis. System messages are English-only; only user messages are localizable.

PACKAGE VARIABLES

$mesg

The "App::CELL::Message" module stores messages in a package variable, $mesg (which is a hashref).

@supp_lang

List of supported languages. Set by "$CELL->load" from the value of CELL_SUPP_LANG

$def_lang

The defined, or default, language. Set by "$CELL->load" from the value of CELL_DEF_LANG

FUNCTIONS AND METHODS

supported_languages

Get reference to list of supported languages.

language_supported

Determine if a given language is supported.

default_language

Return the default language.

new

Construct a message object. Takes a PARAMHASH containing, at least, a 'code' attribute as well as, optionally, other attributes such as 'args' (a reference to an array of arguments). Returns a status object. If the status is ok, then the message object will be in the payload. See ``SYNOPSIS''.

lang

Clones the message into another language. Returns a status object. On success, the new message object will be in the payload.

stringify

Generate a string representation of a message object using Data::Dumper.

code

Accessor method for the 'code' attribute.

args

Accessor method for the 'args' attribute.

text

Accessor method for the 'text' attribute. Returns content of 'text' attribute, or ``<NO_TEXT>'' if it can't find any content.