MyHuman
-------------------------------------------
humanthingysub
myStorableBase
-------------------------------------------
name
phone
pobject
email
parentthingysub
id
Class::PObject::Template
-------------------------------------------
errstr
remove
__props
save
logtrc
new
load
fetch
count
confess
()
columns
dump
remove_all
(""
get
set
logconfig
__driver
croak
carp
drop_datasource
####
#!/usr/bin/perl
use MyHuman;
my $person = MyHuman->new();
$person->name('bob');
$person->email('bob@bob.com');
$new_id = $person->save() or die "save bork";
my $newperson = MyHuman->load($new_id) or die "reload bork";;
print "reload OK\nname is: ".$person->name()."\n";
####
#!/usr/bin/perl
use strict;
use warnings;
no strict 'refs';
=pod
# Class/Object Method Lister
# on Jan 18, 2004 at 21:03 = by stvn
# if you want certain methods ignored,
# put their names in this string
=cut
my $IGNORE = "";
require MyHuman;
printFlatClassView("MyHuman");
print "\n";
printExpandedClassView("MyHuman");
print "\n";
## ------------------------------------------------------------------
sub getClassMethodList {
my $class = shift;
return grep {
!/^($IGNORE)$/ && defined &{"${class}::$_"}
} keys %{"${class}::"};
}
## ------------------------------------------------------------------
sub getCompleteClassMethodList {
my ($class) = @_;
my @methods = getClassMethodList($class);
push @methods => map {
getCompleteClassMethodList($_)
} @{"${class}::ISA"};
return @methods;
}
## ------------------------------------------------------------------
sub printExpandedClassView {
my ($class, $tab_count) = @_;
$tab_count ||= 0;
if ($tab_count) {
my $t = ("\t" x $tab_count);
print "${t}$class\n";
print "${t}-------------------------------------------\n$t";
print join "\n${t}", getClassMethodList($class);
print "\n";
}
else {
print("$class\n");
print "-------------------------------------------\n";
print join "\n" => getClassMethodList($class);
print "\n";
}
map {
printExpandedClassView($_, $tab_count + 1)
} @{"${class}::ISA"};
}
sub printFlatClassView {
my ($class) = @_;
print("$class\n");
print "-------------------------------------------\n";
my %method = map {
$_ => 1
} getCompleteClassMethodList($class);
print join "\n" => keys %method;
print "\n";
}
## ------------------------------------------------------------------
1;