Why not adopt me?
NAME
Dist::Surveyor::Inquiry - Handling the meta-cpan API access for Dist::Surveyor
DESCRIPTION
There are a few things that needed to be known in this module:
$metacpan_size - internally defined global to limit the maximum size of every API call
$metacpan_calls - internally defined global counting how many API call happen.
This module checks $::DEBUG and $::VERBOSE for obvious proposes.
For initating cache-on-disk, call Dist::Surveyor::Inquiry->perma_cache() (this should be usually done, except in testing environment)
CLASS METHODS
Dist::Surveyor::Inquiry->perma_cache()
Enable caching to disk of all the MetaCPAN API requests. This cache can grew to be quite big - 40MB is one case, but it worth it, as if you will need to run this program again, it will run much faster.
FUNCTIONS
get_release_info($author, $release)
Receive release info, such as:
get_release_info('SEMUELF', 'Dist-Surveyor-0.009')
Returns a hashref containing all that release meta information, returned by https://fastapi.metacpan.org/v1/release/$author/$release
(but not information on the files inside the module)
Dies on HTTP error, and warns on empty response.
get_candidate_cpan_dist_releases($module, $version, $file_size)
Return a hashref containing all the releases that contain this module (with the specific version and file size combination)
The keys are the release name (i.e. 'Dist-Surveyor-0.009') and the value is a hashref containing release information and file information:
'Dist-Surveyor-0.009' => {
# release information
'date' => '2013-02-20T06:48:35.000Z',
'version' => '0.009',
'author' => 'SEMUELF',
'version_numified' => '0.009',
'release' => 'Dist-Surveyor-0.009',
'distribution' => 'Dist-Surveyor',
'version_obj' => <version object 0.009>,
# File information
'path' => 'lib/Dist/Surveyor/DB_File.pm',
'stat.mtime' => 1361342736,
'module.version' => '0.009'
'module.version_numified' => '0.009',
}
get_candidate_cpan_dist_releases_fallback($module, $version)
Similar to get_candidate_cpan_dist_releases, but getting called when get_candidate_cpan_dist_releases fails for find matching file and release.
Maybe the file was tempared somehow, so the file size does not match anymore.
get_module_versions_in_release($author, $release)
Receive release info, such as:
get_module_versions_in_release('SEMUELF', 'Dist-Surveyor-0.009')
And returns a hashref, that contains one entry for each module that exists in the release. module information is the format:
'Dist::Surveyor' => {
'version' => '0.009',
'name' => 'Dist::Surveyor',
'path' => 'lib/Dist/Surveyor.pm',
'size' => 43879
},
this function can be called for all sorts of releases that are only vague possibilities and aren't actually installed, so generally it's quiet
License, Copyright
Please see Dist::Surveyor for details