Class: Inspec::Plugins::Fetcher
- Inherits:
-
PluginRegistry::Plugin
- Object
- PluginRegistry::Plugin
- Inspec::Plugins::Fetcher
- Defined in:
- lib/inspec/plugin/v1/plugin_types/fetcher.rb
Overview
An Inspec::Plugins::Fetcher is responsible for fetching a remote source to a local directory or file provided by the user.
In general, there are two kinds of fetchers. (1) Fetchers that implement this entire API (see the Git or Url fetchers for examples), and (2) fetchers that only implement self.resolve and then call the resolve_next method with a modified target hash. Fetchers in (2) do not need to implement the functions in this class because the caller will never actually get an instance of those fetchers.
Instance Attribute Summary collapse
-
#target ⇒ Object
Returns the value of attribute target.
Attributes inherited from PluginRegistry::Plugin
Class Method Summary collapse
Instance Method Summary collapse
-
#archive_path ⇒ Object
The path to the archive on disk.
-
#cache_key ⇒ Object
The unique key based on the content of the remote archive.
-
#fetch(_path) ⇒ Object
Fetches the remote source to a local source, using the provided path as a partial filename.
-
#relative_target ⇒ Object
relative_target is provided to keep compatibility with 3rd party plugins.
-
#resolved_source ⇒ Object
The full specification of the remote source, with any ambigious references provided by the user resolved to an exact reference where possible.
- #writable? ⇒ Boolean
Methods inherited from PluginRegistry::Plugin
name, priority, resolve, resolve_next
Instance Attribute Details
#target ⇒ Object
Returns the value of attribute target.
26 27 28 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 26 def target @target end |
Class Method Details
Instance Method Details
#archive_path ⇒ Object
The path to the archive on disk. This can be passed to a FileProvider to get access to the files in the fetched profile.
37 38 39 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 37 def archive_path raise "Fetcher #{self} does not implement `archive_path()`. This is required." end |
#cache_key ⇒ Object
The unique key based on the content of the remote archive.
67 68 69 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 67 def cache_key raise "Fetcher #{self} does not implement `cache_key()`. This is required for terminal fetchers." end |
#fetch(_path) ⇒ Object
Fetches the remote source to a local source, using the provided path as a partial filename. That is, if you pass /foo/bar/baz, the fetcher can create:
/foo/bar/baz/: A profile directory, or /foo/bar/baz.tar.gz: A profile tarball, or /foo/bar/baz.zip
50 51 52 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 50 def fetch(_path) raise "Fetcher #{self} does not implement `fetch()`. This is required." end |
#relative_target ⇒ Object
relative_target is provided to keep compatibility with 3rd party plugins.
Deprecated: This function may be removed in future versions of Inspec, don’t depend on it in new plugins.
80 81 82 83 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 80 def relative_target file_provider = Inspec::FileProvider.for_path(archive_path) file_provider.relative_provider end |
#resolved_source ⇒ Object
The full specification of the remote source, with any ambigious references provided by the user resolved to an exact reference where possible. For example, in the Git provide, a tag will be resolved to an exact revision.
60 61 62 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 60 def resolved_source raise "Fetcher #{self} does not implement `resolved_source()`. This is required for terminal fetchers." end |
#writable? ⇒ Boolean
28 29 30 |
# File 'lib/inspec/plugin/v1/plugin_types/fetcher.rb', line 28 def writable? false end |