package HeaderDoc::Utilities;
use strict;
use vars qw(@ISA @EXPORT $VERSION);
use Carp;
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(findRelativePath safeName getAPINameAndDisc convertCharsForFileMaker printArray printHash);
$VERSION = 1.00;
sub findRelativePath {
my ($fromMe, $toMe) = @_;
my @fromMeParts = split (/:/, $fromMe);
my @toMeParts = split (/:/, $toMe);
my $i = 0;
while ($fromMeParts[$i] eq $toMeParts[$i]) { $i++;};
@fromMeParts = splice (@fromMeParts, $i);
@toMeParts = splice (@toMeParts, $i);
my $numFromMeParts = @fromMeParts; my $relPart = "../" x ($numFromMeParts - 1);
my $relPath = $relPart.join("/", @toMeParts);
return $relPath;
}
sub safeName {
my ($filename) = @_;
my $returnedName="";
my $safeLimit;
my $macFileLengthLimit = 31;
my $longestExtension = 5;
my $partLength;
my $nameLength;
$safeLimit = ($macFileLengthLimit - $longestExtension);
$partLength = int (($safeLimit/2)-1);
$filename =~ tr/a-zA-Z0-9./_/cs;
$nameLength = length($filename);
if ($nameLength > $safeLimit) {
my $safeName = $filename;
$safeName =~ s/^(.{$partLength}).*(.{$partLength})$/$1_$2/;
$returnedName = $safeName;
} else {
$returnedName = $filename;
}
return $returnedName;
}
sub getAPINameAndDisc {
my $line = shift;
my ($name, $disc, $operator);
$line =~ s/^\s+//;
($name, $disc) = split (/\s/, $line, 2);
if ($name =~ /operator/) { ($operator, $name, $disc) = split (/\s/, $line, 3);
$name = $operator." ".$name;
}
return ($name, $disc);
}
sub convertCharsForFileMaker {
my $line = shift;
$line =~ s/\t//g;
$line =~ s/\n//g;
return $line;
}
sub printArray {
my (@theArray) = @_;
my $i= 0;
my $length = @theArray;
while ($i < $length) {
print ("\t$theArray[$i++]\n");
}
}
sub printHash {
my (%theHash) = @_;
print ("Printing contents of hash:\n");
foreach my $keyword (keys(%theHash)) {
print ("$keyword => $theHash{$keyword}\n");
}
print("-----------------------------------\n\n");
}
1;
__END__