Changes for version 0.004 - 2026-10-26

  • BREAKING: the "brand" helper returns the controller when setting the brand, so that calls can be chained, e.g. $c->brand('acme')->render(...).
  • BREAKING: unknown keys in the configuration and in "individual" make the plugin croak, e.g. "paths" from versions before 0.003.
  • BREAKING: a brand set to undef removes the brand configured by an earlier registration, instead of being skipped.
  • Roles are applied to the application's renderer and static file server, and the "brand" helper is added, only when "individual" has a "stash_key" or names a brand; global-only configurations leave them alone.
  • A valid configuration no longer triggers $SIG{__DIE__} handlers.
  • The template cache of each brand has the same class as the application's one, instead of always being a Mojo::Cache.
  • Errors about invalid paths say where they are, e.g. "(brand 'acme', public)" or "(global)".
  • An invalid configuration leaves the application untouched: "global" directories are only added once the whole configuration is valid.

Modules

Global and per-request branding of templates and public files

Provides

in lib/Mojolicious/Plugin/Branding.pm
in lib/Mojolicious/Plugin/Branding.pm
in lib/Mojolicious/Plugin/Branding.pm