Meta::File::MMagic - extend File::MMagic.


Meta documentation Contained in the Meta distribution.

Index


Code Index:

NAME

Top

Meta::File::MMagic - extend File::MMagic.

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: MMagic.pm
	PROJECT: meta
	VERSION: 0.01

SYNOPSIS

Top

	package foo;
	use Meta::File::MMagic qw();
	my($object)=Meta::File::MMagic->new();
	my($result)=$object->method();

DESCRIPTION

Top

This class extends the functionality found in File::MMagic until some improvements to that class are made.

FUNCTIONS

Top

	new($)
	checktype_filemagic($$)
	checktype_filecontents($$)
	is_image($$)
	TEST($)

FUNCTION DOCUMENTATION

Top

new($)

This is a constructor for the Meta::File::MMagic object. Currently it adds the ability to recognize css file types by using the addFileExts method.

checktype_filemagic($$)

This method is a shortcut to run checktype_magic with a file. The method will read the file contents and will pass it on to checktype_magic.

checktype_filecontents($$)

This method is a shortcut to run checktype_contents with a file. The method will read the file contents and will pass it on to checktype_contents.

is_image($$)

This method will return whether the specified file is an image. It finds the mime type and checks whether it has "image" in it.

TEST($)

This is a testing suite for the Meta::File::MMagic 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.

The procedure currently tests two files for which I know the types for validity.

SUPER CLASSES

Top

File::MMagic(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 download scripts
	0.01 MV md5 issues

SEE ALSO

Top

File::MMagic(3), Meta::Baseline::Aegis(3), Meta::Utils::File::File(3), strict(3)

TODO

Top

-add caching capabilities to this class using Cache::MemoryCache.

-make a "best" method for matching. It is not obvious whether check_filename or check_byfilename is the best method of File::MMagic and so I need a killer combination.


Meta documentation Contained in the Meta distribution.

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

package Meta::File::MMagic;

use strict qw(vars refs subs);
use Meta::Baseline::Aegis qw();
use File::MMagic qw();
use Meta::Utils::File::File qw();

our($VERSION,@ISA);
$VERSION="0.01";
@ISA=qw(File::MMagic);

#sub new($);
#sub checktype_filemagic($$);
#sub checktype_filecontents($$);
#sub is_image($$);
#sub TEST($);

#__DATA__

sub new($) {
	my($class)=@_;
	my($self)=File::MMagic->new();
	bless($self,$class);
	$self->addFileExts('\.css$',"text/css");
	return($self);
}

sub checktype_filemagic($$) {
	my($self,$file)=@_;
	my($data);
	Meta::Utils::File::File::load($file,\$data);
	return($self->checktype_magic($data));
}

sub checktype_filecontents($$) {
	my($self,$file)=@_;
	my($data);
	Meta::Utils::File::File::load($file,\$data);
	return($self->checktype_contents($data));
}

sub is_image($$) {
	my($self,$file)=@_;
	my($type)=$self->checktype_filename($file);
#	Meta::Utils::Output::print("type is [".$type."]\n");
	if($type=~/^image\//) {
		return(1);
	} else {
		return(0);
	}
}

sub TEST($) {
	my($context)=@_;
	my($file)="cssx/projects/Website/main.css";
	my($abso)=Meta::Baseline::Aegis::which($file);
	my($mm)=Meta::File::MMagic->new();
	my($type)=$mm->checktype_byfilename($abso);
	if($type ne "text/css") {
		return(0);
	}
	my($image_file)="jpgx/mark/mark_chess2.jpg";
	my($abso_image)=Meta::Baseline::Aegis::which($image_file);
	if(!($mm->is_image($abso_image))) {
		return(0);
	}
	return(1);
}

1;

__END__