package JS::jQuery::Loader::Cache::URI;
use Moose;
extends qw/JS::jQuery::Loader::Cache::File/;
use JS::jQuery::Loader::Carp;
use Path::Abstract;
sub BUILD {
my $self = shift;
my $given = shift;
my $location = $given->{location};
$self->{location} = do {
my ($file, $uri);
if (my $rsc = $given->{rsc}) {
if (blessed $rsc && $rsc->isa("Path::Resource")) {
$file = $rsc->file;
$uri = $rsc->uri;
}
}
else {
($file, $uri) = @$given{qw/file uri/};
}
croak "Wasn't given a file" unless $file;
croak "Wasn't given a URI" unless $uri;
$file = "$file/\%l" if -d $file; # TODO Moar checking, Path::Class::Dir, etc.
JS::jQuery::Loader::Location->new(template => $self->template, file => $file, uri => $uri, location => $location);
}
unless blessed $location;
}
sub uri {
my $self = shift;
$self->file; # Load up the file if it doesn't exist
return $self->location->uri(@_);
}
1;