use Scalar::Util 'blessed';
-our $VERSION = '0.01';
+our $VERSION = '0.83';
+$VERSION = eval $VERSION;
our $AUTHORITY = 'cpan:STEVAN';
# introspection
Class::MOP::Class->initialize(blessed($_[0]) || $_[0]);
}
+sub _new {
+ Class::MOP::class_of(shift)->new_object(@_);
+}
+
+# RANT:
+# Cmon, how many times have you written
+# the following code while debugging:
+#
+# use Data::Dumper;
+# warn Dumper $obj;
+#
+# It can get seriously annoying, so why
+# not just do this ...
+sub dump {
+ my $self = shift;
+ require Data::Dumper;
+ local $Data::Dumper::Maxdepth = shift || 1;
+ Data::Dumper::Dumper $self;
+}
+
1;
__END__
=head1 NAME
-Class::MOP::Object - Object Meta Object
+Class::MOP::Object - Base class for metaclasses
=head1 DESCRIPTION
-This class is basically a stub, it provides no functionality at all,
-and really just exists to make the Class::MOP metamodel complete.
-
- ......
- : :
- : v
- +-------------------+
- +-----| Class::MOP::Class |
- | +-------------------+
- | ^ ^ ^
- v : : :
- +--------------------+ : +--------------------+
- | Class::MOP::Module | : | Class::MOP::Object |
- +--------------------+ : +--------------------+
- | : ^
- | : |
- | +---------------------+ |
- +--->| Class::MOP::Package |-----+
- +---------------------+
-
- legend:
- ..(is an instance of)..>
- --(is a subclass of)-->
-
-A deeper discussion of this model is currently beyond the scope of
-this documenation.
-
+This class is a very minimal base class for metaclasses.
+
=head1 METHODS
+This class provides a few methods which are useful in all metaclasses.
+
=over 4
-=item B<meta>
+=item B<< Class::MOP::???->meta >>
+
+This returns a L<Class::MOP::Class> object.
+
+=item B<< $metaobject->dump($max_depth) >>
+
+This method uses L<Data::Dumper> to dump the object. You can pass an
+optional maximum depth, which will set C<$Data::Dumper::Maxdepth>. The
+default maximum depth is 1.
=back
=head1 COPYRIGHT AND LICENSE
-Copyright 2006 by Infinity Interactive, Inc.
+Copyright 2006-2009 by Infinity Interactive, Inc.
L<http://www.iinteractive.com>
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
-=cut
\ No newline at end of file
+=cut