.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "App::CELL::Message 3pm" .TH App::CELL::Message 3pm "2018-08-15" "perl v5.26.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" App::CELL::Message \- handle messages the user might see .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& 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 => \*(AqFOOBAR\*(Aq ) \& # 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\*(Aqs language \& # preference setting \& my $message = App::CELL::Message\->new( code => \*(AqBARBAZ\*(Aq, \& session => $s_obj ); \& $msg_to_display = $message\->App::CELL::Message\->text; \& \& # a message may call for one or more arguments. If so, \& # include an \*(Aqargs\*(Aq hash element in the call to \*(Aqnew\*(Aq: \& args => [ \*(AqFOO\*(Aq, \*(AqBAR\*(Aq ] \& # they will be included in the message text via a call to \& # sprintf .Ve .SH "EXPORTS AND PUBLIC METHODS" .IX Header "EXPORTS AND PUBLIC METHODS" This module provides the following public functions and methods: .ie n .IP """new"" \- construct a ""App::CELL::Message"" object" 4 .el .IP "\f(CWnew\fR \- construct a \f(CWApp::CELL::Message\fR object" 4 .IX Item "new - construct a App::CELL::Message object" .PD 0 .ie n .IP """text"" \- get text of an existing object" 4 .el .IP "\f(CWtext\fR \- get text of an existing object" 4 .IX Item "text - get text of an existing object" .ie n .IP """max_size"" \- get maximum size of a given message code" 4 .el .IP "\f(CWmax_size\fR \- get maximum size of a given message code" 4 .IX Item "max_size - get maximum size of a given message code" .PD .SH "DESCRIPTION" .IX Header "DESCRIPTION" An App::CELL::Message object is a reference to a hash containing some or all of the following keys (attributes): .ie n .IP """code"" \- message code (see below)" 4 .el .IP "\f(CWcode\fR \- message code (see below)" 4 .IX Item "code - message code (see below)" .PD 0 .ie n .IP """text"" \- message text" 4 .el .IP "\f(CWtext\fR \- message text" 4 .IX Item "text - message text" .ie n .IP """error"" \- error (if any) related to this message" 4 .el .IP "\f(CWerror\fR \- error (if any) related to this message" 4 .IX Item "error - error (if any) related to this message" .ie n .IP """language"" \- message language (e.g., English)" 4 .el .IP "\f(CWlanguage\fR \- message language (e.g., English)" 4 .IX Item "language - message language (e.g., English)" .ie n .IP """max_size"" \- maximum number of characters this message is guaranteed not to exceed (and will be truncated to fit into)" 4 .el .IP "\f(CWmax_size\fR \- maximum number of characters this message is guaranteed not to exceed (and will be truncated to fit into)" 4 .IX Item "max_size - maximum number of characters this message is guaranteed not to exceed (and will be truncated to fit into)" .ie n .IP """truncated"" \- boolean value: text has been truncated or not" 4 .el .IP "\f(CWtruncated\fR \- boolean value: text has been truncated or not" 4 .IX Item "truncated - boolean value: text has been truncated or not" .PD .PP The information in the hash is sourced from two places: the \&\f(CW$mesg\fR hashref in this module (see \*(L"\s-1CONSTANTS\*(R"\s0) and the \s-1SQL\s0 database. The former is reserved for \*(L"system critical\*(R" 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. .SH "PACKAGE VARIABLES" .IX Header "PACKAGE VARIABLES" .ie n .SS "$mesg" .el .SS "\f(CW$mesg\fP" .IX Subsection "$mesg" The \f(CW\*(C`App::CELL::Message\*(C'\fR module stores messages in a package variable, \f(CW$mesg\fR (which is a hashref). .ie n .SS "@supp_lang" .el .SS "\f(CW@supp_lang\fP" .IX Subsection "@supp_lang" List of supported languages. Set by \f(CW\*(C`$CELL\->load\*(C'\fR from the value of \&\s-1CELL_SUPP_LANG\s0 .ie n .SS "$def_lang" .el .SS "\f(CW$def_lang\fP" .IX Subsection "$def_lang" The defined, or default, language. Set by \f(CW\*(C`$CELL\->load\*(C'\fR from the value of \s-1CELL_DEF_LANG\s0 .SH "FUNCTIONS AND METHODS" .IX Header "FUNCTIONS AND METHODS" .SS "supported_languages" .IX Subsection "supported_languages" Get reference to list of supported languages. .SS "language_supported" .IX Subsection "language_supported" Determine if a given language is supported. .SS "default_language" .IX Subsection "default_language" Return the default language. .SS "new" .IX Subsection "new" Construct a message object. Takes a \s-1PARAMHASH\s0 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 \&\*(L"\s-1SYNOPSIS\*(R"\s0. .SS "lang" .IX Subsection "lang" Clones the message into another language. Returns a status object. On success, the new message object will be in the payload. .SS "stringify" .IX Subsection "stringify" Generate a string representation of a message object using Data::Dumper. .SS "code" .IX Subsection "code" Accessor method for the 'code' attribute. .SS "args" .IX Subsection "args" Accessor method for the 'args' attribute. .SS "text" .IX Subsection "text" Accessor method for the 'text' attribute. Returns content of 'text' attribute, or \*(L"<\s-1NO_TEXT\s0>\*(R" if it can't find any content.