Meta::IO::File - extend IO::File.


Meta documentation Contained in the Meta distribution.

Index


Code Index:

NAME

Top

Meta::IO::File - extend IO::File.

COPYRIGHT

Top

LICENSE

Top

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.

DETAILS

Top

	MANIFEST: File.pm
	PROJECT: meta
	VERSION: 0.00

SYNOPSIS

Top

	package foo;
	use Meta::IO::File qw();
	my($object)=Meta::IO::File->new_reader("/etc/passwd");
	while(!$object->eof()) {
		my($line)=$io->getline();
		Meta::Utils::Output::print($line);
	}
	$object->close();

DESCRIPTION

Top

This class extends IO::File. I'm not actually adding a lot of IO stuff but rather making the code which uses IO::File cleaner by having my Meta::IO::File throw exception instead of returning error codes so that it will fit nicer in OO systems.

FUNCTIONS

Top

	new($$$)
	new_reader($$);
	new_writer($$);
	cgetline($);
	TEST($)

FUNCTION DOCUMENTATION

Top

new($$$)

This is a constructor for the Meta::IO::File object. It overrides the IO::File file,mode constructor, calls it, and throws an exception if something bad happens.

new_reader($$)

Convenience method for creating a file handle for reading a file.

new_writer($$)

Converniece method for creating a file handle for writing to a file.

cgetline($)

Same as getline except the output is chopped.

TEST($)

This is a testing suite for the Meta::IO::File module. This test is should be run by a higher level management system at integration or release time or just as a regular routine to check that all is well. Currently this just opens /etc/passwd and closes it which should be enough.

SUPER CLASSES

Top

IO::File(3)

BUGS

Top

None.

AUTHOR

Top

	Name: Mark Veltzer
	Email: mailto:veltzer@cpan.org
	WWW: http://www.veltzer.org
	CPAN id: VELTZER

HISTORY

Top

	0.00 MV md5 issues

SEE ALSO

Top

Error(3), IO::File(3), strict(3)

TODO

Top

-make the TEST procedure as the test framework for a readonly existing file and not count on /etc/passwd being there.


Meta documentation Contained in the Meta distribution.

#!/bin/echo This is a perl module and should not be run

package Meta::IO::File;

use strict qw(vars refs subs);
use IO::File qw();
use Error qw(:try);

our($VERSION,@ISA);
$VERSION="0.00";
@ISA=qw(IO::File);

#sub new($$$);
#sub new_reader($$);
#sub new_writer($$);
#sub cgetline($);
#sub TEST($);

#__DATA__

sub new($$$) {
	my($class,$file,$mode)=@_;
	my($self)=IO::File::new($class,$file,$mode);
	if(!$self) {
		throw Meta::Error::Simple("unable to open IO::File with file [".$file."] and mode [".$mode."]");
	}
	#bless($self,$class);
	return($self);
}

sub new_reader($$) {
	my($class,$file)=@_;
	return(Meta::IO::File::new($class,$file,"r"));
}

sub new_writer($$) {
	my($class,$file)=@_;
	return(Meta::IO::File::new($class,$file,"w"));
}

sub cgetline($) {
	my($self)=@_;
	my($line)=$self->getline();
	CORE::chop($line);
	return($line);
}

sub TEST($) {
	my($context)=@_;
	my($object)=__PACKAGE__->new_reader("/etc/passwd");
	while(!$object->eof()) {
		my($line)=$object->getline();
		Meta::Utils::Output::print($line);
	}
	$object->close();
	return(1);
}

1;

__END__