NAME
CPANPLUS::Selfupdate - self-updating for CPANPLUS
SYNOPSIS
$su = $cb->selfupdate_object;
@feats = $su->list_features;
@feats = $su->list_enabled_features;
@mods = map { $su->modules_for_feature( $_ ) } @feats;
@mods = $su->list_core_dependencies;
@mods = $su->list_core_modules;
for ( @mods ) {
print $_->name " should be version " . $_->version_required;
print "Installed version is not uptodate!"
unless $_->is_installed_version_sufficient;
}
$ok = $su->selfupdate( update => 'all', latest => 0 );
METHODS
$self = CPANPLUS::Selfupdate->new( $backend_object );
Sets up a new selfupdate object. Called automatically when a new backend object is created.
@cat = $self->list_categories
Returns a list of categories that the selfupdate
method accepts.
See selfupdate
for details.
%list = $self->list_modules_to_update( update => "core|dependencies|enabled_features|features|all", [latest => BOOL] )
List which modules selfupdate
would upgrade. You can update either the core (CPANPLUS itself), the core dependencies, all features you have currently turned on, or all features available, or everything.
The latest
option determines whether it should update to the latest version on CPAN, or if the minimal required version for CPANPLUS is good enough.
Returns a hash of feature names and lists of module objects to be upgraded based on the category you provided. For example:
%list = $self->list_modules_to_update( update => 'core' );
Would return:
( core => [ $module_object_for_cpanplus ] );
$bool = $self->selfupdate( update => "core|dependencies|enabled_features|features|all", [latest => BOOL, force => BOOL] )
Selfupdate CPANPLUS. You can update either the core (CPANPLUS itself), the core dependencies, all features you have currently turned on, or all features available, or everything.
The latest
option determines whether it should update to the latest version on CPAN, or if the minimal required version for CPANPLUS is good enough.
Returns true on success, false on error.
@features = $self->list_features
Returns a list of features that are supported by CPANPLUS.
@features = $self->list_enabled_features
Returns a list of features that are enabled in your current CPANPLUS installation.
@mods = $self->modules_for_feature( FEATURE [,AS_HASH] )
Returns a list of CPANPLUS::Selfupdate::Module
objects which represent the modules required to support this feature.
For a list of features, call the list_features
method.
If the AS_HASH
argument is provided, no module objects are returned, but a hashref where the keys are names of the modules, and values are their minimum versions.
@mods = $self->list_core_dependencies( [AS_HASH] )
Returns a list of CPANPLUS::Selfupdate::Module
objects which represent the modules that comprise the core dependencies of CPANPLUS.
If the AS_HASH
argument is provided, no module objects are returned, but a hashref where the keys are names of the modules, and values are their minimum versions.
@mods = $self->list_core_modules( [AS_HASH] )
Returns a list of CPANPLUS::Selfupdate::Module
objects which represent the modules that comprise the core of CPANPLUS.
If the AS_HASH
argument is provided, no module objects are returned, but a hashref where the keys are names of the modules, and values are their minimum versions.
CPANPLUS::Selfupdate::Module
CPANPLUS::Selfupdate::Module
extends CPANPLUS::Module
objects by providing accessors to aid in selfupdating CPANPLUS.
These objects are returned by all methods of CPANPLUS::Selfupdate
that return module objects.
$version = $mod->version_required
Returns the version of this module required for CPANPLUS.
$bool = $mod->is_installed_version_sufficient
Returns true if the installed version of this module is sufficient for CPANPLUS, or false if it is not.
BUG REPORTS
Please report bugs or other issues to <bug-cpanplus@rt.cpan.org<gt>.
AUTHOR
This module by Jos Boumans <kane@cpan.org>.
COPYRIGHT
The CPAN++ interface (of which this module is a part of) is copyright (c) 2001 - 2007, Jos Boumans <kane@cpan.org>. All rights reserved.
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.