| File-Tasks documentation | Contained in the File-Tasks distribution. |
File::Tasks::Add - A File::Tasks task to add a new file
Objects of this class represent the addition of a new file to the filesystem. Specifically, they mean the creation of a new file where no existing file should exist.
Thus, when applying the task to a filesystem, it is first checked to ensure there is no existing file accidentally in the way.
Creates a new File::Tasks::Add object, although you probably won't
be creating this object directly from here.
Returns a new File::Tasks::Add object, or undef on error.
Returns the task type, which is always 'Add'.
The path accessor returns the path to the file within the set
of tasks.
The source accessor returns the content source, which could be
anything supported by File::Tasks::Provider.
The test method checks to see if the file can be added.
Returns true if so, or false if not.
The execute method executes the task on the local filesystem.
Returns true on success or undef on error.
The content method returns the content that is to be written
to the file.
Bugs should be reported via the CPAN bug tracker at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Tasks
For other issues, contact the author.
Adam Kennedy <adamk@cpan.org>, http://ali.as/
Copyright 2005 Adam Kennedy.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
| File-Tasks documentation | Contained in the File-Tasks distribution. |
package File::Tasks::Add; # See POD at end for docs use strict; use base 'File::Tasks::Task'; use File::Flat (); use Params::Util '_INSTANCE'; use vars qw{$VERSION}; BEGIN { $VERSION = '0.07'; } ##################################################################### # Constructor and Accessors sub new { my $class = shift; my $self = $class->SUPER::new(@_) or return undef; # Check the content source my $Script = _INSTANCE(shift, 'File::Tasks') or return undef; $self->{source} = $Script->provider->compatible(shift) or return undef; $self; } sub source { $_[0]->{source} } ##################################################################### # File::Tasks::Task sub type { 'Add' } sub test { File::Flat->canWrite( shift->path ); } sub content { my $self = shift; $self->provider->content( $self->source ); } sub execute { my $self = shift; my $content = $self->content or return undef; File::Flat->write( $self->path, $content ); } 1; __END__