The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
NAME
    Mojolicious::Plugin::AssetPack - Compress and convert css, less, sass,
    javascript and coffeescript files

VERSION
    0.63

SYNOPSIS
  Application
      use Mojolicious::Lite;

      # load plugin
      plugin "AssetPack";

      # define assets: $moniker => @real_assets
      app->asset('app.js' => '/js/foo.js', '/js/bar.js', '/js/baz.coffee');
      app->asset->purge; # remove old packed files
      app->start;

    See also Mojolicious::Plugin::AssetPack::Manual::Assets for more details
    on how to define assets.

  Template
      %= asset 'app.js'
      %= asset 'app.css'

    See also Mojolicious::Plugin::AssetPack::Manual::Include for more
    details on how to include assets.

DESCRIPTION
    Mojolicious::Plugin::AssetPack is a Mojolicious plugin which can be used
    to cram multiple assets of the same type into one file. This means that
    if you have a lot of CSS files (.css, .less, .sass, ...) as input, the
    AssetPack can make one big CSS file as output. This is good, since it
    will often speed up the rendering of your page. The output file can even
    be minified, meaning you can save bandwidth and browser parsing time.

    The core preprocessors that are bundled with this module can handle CSS
    and JavaScript files, written in many languages.

MANUALS
    The documentation is split up in different manuals, for more in-depth
    information:

    *   See Mojolicious::Plugin::AssetPack::Manual::Assets for how to define
        assets in your application.

    *   See Mojolicious::Plugin::AssetPack::Manual::Include for how to
        include the assets in the template.

    *   See Mojolicious::Plugin::AssetPack::Manual::Modes for how AssetPack
        behaves in different modes.

    *   See Mojolicious::Plugin::AssetPack::Manual::CustomDomain for how to
        serve your assets from a custom host.

    *   See Mojolicious::Plugin::AssetPack::Preprocessors for details on the
        different (official) preprocessors.

ENVIRONMENT
  MOJO_ASSETPACK_DEBUG
    Set this to get extra debug information to STDERR from AssetPack
    internals.

  MOJO_ASSETPACK_NO_CACHE
    If true, convert the assets each time they're expanded, instead of once
    at application start (useful for development).

HELPERS
  asset
    This plugin defined the helper "asset()". This helper can be called in
    different ways:

    *   $self = $c->asset;

        This will return the plugin instance, that you can call methods on.

    *   $c->asset($moniker => @real_files);

        See "add".

    *   $bytestream = $c->asset($moniker, \%args, @attr);

        Used to include an asset in a template.

ATTRIBUTES
  base_url
      $app->plugin("AssetPack" => {base_url => "/packed/"});
      $str = $self->base_url;

    This attribute can be used to control where to serve static assets from.

    Defaults value is "/packed/".

    See Mojolicious::Plugin::AssetPack::Manual::CustomDomain for more
    details.

    NOTE! You need to have a trailing "/" at the end of the string.

  headers
      $hash_ref = $self->headers;
      $self = $self->headers({"Cache-Control" => "max-age=31536000"});

    This attribute can hold custom response headers when serving assets. The
    default is no headers, but this might change in future release to
    include "Cache-Control".

    This attribute is EXPERIMENTAL.

  minify
      $bool = $self->minify;
      $app->plugin("AssetPack" => {minify => $bool});

    Set this to true if the assets should be minified.

    Default is false in "development" mode and true otherwise.

    See also Mojolicious::Plugin::AssetPack::Manual::Modes.

  out_dir
      $str = $self->out_dir;
      $app->plugin("AssetPack" => {out_dir => $str});

    Holds the path to the directory where packed files can be written.

    Defaults to empty string if no directory can be found, which again
    results in keeping all packed files in memory.

  preprocessors
      $obj = $self->preprocessors;

    Holds a Mojolicious::Plugin::AssetPack::Preprocessors object.

METHODS
  add
      $self->add($moniker => @real_files);

    Used to define assets.

    See Mojolicious::Plugin::AssetPack::Manual::Assets for mode details.

  fetch
      $path = $self->fetch($url);

    This method can be used to fetch an asset and store the content to a
    local file. The download will be skipped if the file already exists. The
    return value is the absolute path to the downloaded file.

  get
      @files = $self->get($moniker);

    Returns a list of files which the moniker point to. The list will only
    contain one file if "minify" is true.

    See "Full control" in Mojolicious::Plugin::AssetPack::Manual::Include
    for mode details.

  preprocessor
    DEPRECATED. Use this instead:

      $self->preprocessors->add($extension => $class => \%attrs);

  purge
      $self = $self->purge({always => $bool});

    Used to purge old packed files. This is useful if you want to avoid
    filling up "out_dir" with many versions of the packed file.

    "always" default to true if in "development" mode and false otherwise.

    This method is EXPERIMENTAL and can change or be removed at any time.

  register
      plugin AssetPack => {
        base_url     => $str,     # default to "/packed"
        headers      => {"Cache-Control" => "max-age=31536000"},
        minify       => $bool,    # compress assets
        proxy        => "detect", # autodetect proxy settings
        out_dir      => "/path/to/some/directory",
        source_paths => [...],
      };

    Will register the "asset" helper. All arguments are optional.

  source_paths
      $self = $self->source_paths($array_ref);
      $array_ref = $self->source_paths;

    This method returns a list of paths to source files. The default is to
    return "paths" in Mojolicious::Static from the current application
    object, but you can specify your own paths.

    See also "Custom source directories" in
    Mojolicious::Plugin::AssetPack::Manual::Assets for more information.

    This method is EXPERIMENTAL and can change, but will most likely not be
    removed.

COPYRIGHT AND LICENSE
    Copyright (C) 2014, Jan Henning Thorsen.

    This program is free software, you can redistribute it and/or modify it
    under the terms of the Artistic License version 2.0.

AUTHOR
    Jan Henning Thorsen - "jhthorsen@cpan.org"

    Alexander Rymasheusky

    Per Edin - "info@peredin.com"

    Viktor Turskyi