SYNPOSIS

my $asset = File::Asset->new(base => $base, path => "/static/assets.css");
$asset = $assets->include("/static/assets.css"); # Or, like this, usually.

print "The rank for asset at ", $asset->uri, " is ", $asset->rank, "\n";
print "The file for the asset is ", $asset->file, "\n";

DESCRIPTION

A File::Asset object represents an asset existing in both URI-space and file-space (on disk). The asset is usually a .js (JavaScript) or .css (CSS) file.

METHODS

File::Asset->new( base => <base>, path => <path>, [ rank => <rank>, type => <type> ])

Creates a new File::Asset. You probably don't want to use this, create a File::Assets object and use $assets->include instead.

$asset->uri

Returns a URI object represting the uri for $asset

$asset->file

Returns a Path::Class::File object represting the file for $asset

$asset->path

Returns the path of $asset

$asset->content

Returns a SCALAR reference to the content contained in $asset->file

$asset->write( <content> )

Writes <content>, which should be a SCALAR reference, to the file located at $asset->file

If the parent directory for $asset->file does not exist yet, this method will create it first

$asset->digest

Returns a hex digest for the content of $asset

$asset->key

Returns the unique key for the $asset. Usually the path/filename of the $asset, but for content-based assets returns a value based off of $asset->digest

$asset->hide

Hide $asset (mark it as hidden). That is, don't include $asset during export

$asset->inline

Returns whether $asset is inline (should be embedded into the document) or external.

If an argument is given, then it will set whether $asset is inline or not (1 for inline, 0 for external).