NAME

Mojolicious::Plugin::AssetPack::Pipe::Sass - Process sass and scss files

SYNOPSIS

Application

plugin AssetPack => {pipes => [qw(Sass Css Combine)]};

$self->pipe("Sass")->functions({
  q[image-url($arg)] => sub {
    my ($pipe, $arg) = @_;
    return sprintf "url(/assets/%s)", $_[1];
  }
});

Sass file

The sass file below shows how to use the custom "image-url" function:

body {
  background: #fff image-url('img.png') top left;
}

DESCRIPTION

Mojolicious::Plugin::AssetPack::Pipe::Sass will process sass and scss files.

This module require either the optional module CSS::Sass or the sass program to be installed. sass will be automatically installed using https://rubygems.org/ unless already available.

ATTRIBUTES

functions

$hash_ref = $self->functions;

Used to define custom SASS functions. Note that the functions will be called with $self as the first argument, followed by any arguments from the SASS function. This invocation is EXPERIMENTAL, but will hopefully not change.

This attribute requires CSS::Sass to work. It will not get passed on to the sass executable.

See "SYNOPSIS" for example.

generate_source_map

$bool = $self->generate_source_map;
$self = $self->generate_source_map(1);

This pipe will generate source maps if true. Default is "1" if "mode" in Mojolicious is "development".

See also http://thesassway.com/intermediate/using-source-maps-with-sass and https://robots.thoughtbot.com/sass-source-maps-chrome-magic for more information about the usefulness.

See also Mojolicious::Plugin::AssetPack::Guides::Developing/Faster development cycle> for how to reload the page when changes are done inside the browser's dev tools.

METHODS

process

See "process" in Mojolicious::Plugin::AssetPack::Pipe.

SEE ALSO

Mojolicious::Plugin::AssetPack.