NAME

Jifty::View::Mason::Handler - Handler for Mason requests inside of Jifty

SUMMARY

Jifty controls all of the input and output from the Mason templating engine; this means that we cannot use the Mason's standard HTML::Mason::CGIHandler interface to interact with it.

new PARAMHASH

Takes a number of key-value parameters; see HTML::Mason::Params. Defaults the out_method to appending to "buffer" in Jifty::Handler and the request_class to Jifty::View::Mason::Request (below). Finally, adds h and u escapes, which map to "escape_uri" and escape_utf8 respectively.

config

Returns our Mason config. We use the component root specified in the Web/TemplateRoot framework configuration variable (or html by default). Additionally, we set up a jifty component root, as specified by the Web/DefaultTemplateRoot configuration. All interpolations are HTML-escaped by default, and we use the fatal error mode.

escape_utf8 SCALARREF

Does a css-busting but minimalist escaping of whatever html you're passing in.

escape_uri SCALARREF

Escapes in-place URI component according to RFC2396. Takes a reference to perl string.

*Note* that octets would be treated as latin1 encoded sequence and converted to UTF-8 encoding and then escaped. So this sub always provide UTF-8 escaped string. See also Encode for more info about converting.

template_exists COMPONENT

Checks if the COMPONENT exists, or if COMPONENT/index.html exists, and returns which one did. If neither did, it searches for dhandler components which could match, returning COMPONENT if it finds one. Finally, if it finds no possible component matches, returns undef.

Note that this algorithm does not actually decisively return if Mason will handle a given component; the dhandlers could defer handling, for instance.

show COMPONENT

Takes a component path to render. Deals with setting up a global HTML::Mason::FakeApache and Request object, and calling the component.

handle_comp

A synonym for show

request_args

The official source for request arguments is from the current Jifty::Request object.

create_cache_directories

Attempts to create our application's mason cache directory.