---
name: "Jifty::View::Mason::Handler"
section: "3pm"
platform: "linux"
package: "libjifty-perl"
version: "1.10518+dfsg-2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Jifty::View::Mason::Handler"
---

# Jifty::View::Mason::Handler(3pm)

Handler for Mason requests inside of Jifty

## 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 *dhandler*s 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.
