Footprintless::Resource::Provider

- NAME
- VERSION
- DESCRIPTION
- CONSTRUCTORS
  - new(@args)
- METHODS
  - download($resource, %options)
  - resource($spec)
  - supports($spec)
- AUTHOR
- COPYRIGHT AND LICENSE
- SEE ALSO

# NAME

Footprintless::Resource::Provider - A contract for providing resources to the resource manager

# VERSION

version 1.12

# DESCRIPTION

The abstract base class for all providers. The class defines the contract that all providers must adhere to. Providers not intended to be used directly. Instead an instance of `Footprintless::ResourceManager` should be initialized with an ordered list of providers. See Footprintless::ResourceManager for usage.

# CONSTRUCTORS

## new(@args)

See implementation classes.

# METHODS

## download($resource, %options)

Downloads `$resource` and returns the filename it downloaded to. The returned filename may be an object which overrides the `""` operator so that when used in string context, you will get the actual filename. All `%options` are passed through to the implementation. At minimum, all implementations must support these options:

to

  The path of a directory or filename to download to.

## resource($spec)

Returns an instance of the subclass of `Footprintless::Resource` provided by this provider, indicated by `$spec`.

## supports($spec)

Returns `1` if this provider supports `$spec`, `0` otherwise.

# AUTHOR

Lucas Theisen <lucastheisen@pastdev.com>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Lucas Theisen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

# SEE ALSO

Please see those modules/websites for more information related to this module.

- Footprintless
- Footprintless::Resource::Provider
- Footprintless::Resource::Url
- Footprintless::ResourceManager
- Footprintless