oops, put Object::_new back in for Moose
[gitmo/Class-MOP.git] / lib / Class / MOP / Object.pm
1
2 package Class::MOP::Object;
3
4 use strict;
5 use warnings;
6
7 use Scalar::Util 'blessed';
8
9 our $VERSION   = '0.65';
10 our $AUTHORITY = 'cpan:STEVAN';
11
12 # introspection
13
14 sub meta { 
15     require Class::MOP::Class;
16     Class::MOP::Class->initialize(blessed($_[0]) || $_[0]);
17 }
18
19 sub _new {
20     shift->meta->new_object(@_);
21 }
22
23 # RANT:
24 # Cmon, how many times have you written 
25 # the following code while debugging:
26
27 #  use Data::Dumper; 
28 #  warn Dumper $obj;
29 #
30 # It can get seriously annoying, so why 
31 # not just do this ...
32 sub dump { 
33     my $self = shift;
34     require Data::Dumper;
35     local $Data::Dumper::Maxdepth = shift || 1;
36     Data::Dumper::Dumper $self;
37 }
38
39 1;
40
41 __END__
42
43 =pod
44
45 =head1 NAME 
46
47 Class::MOP::Object - Object Meta Object
48
49 =head1 DESCRIPTION
50
51 This class is basically a stub, it provides no functionality at all, 
52 and really just exists to make the Class::MOP metamodel complete.
53
54                          ......
55                         :      :                  
56                         :      v
57                   +-------------------+
58             +-----| Class::MOP::Class |
59             |     +-------------------+
60             |        ^      ^       ^
61             v        :      :       :
62   +--------------------+    :      +--------------------+
63   | Class::MOP::Module |    :      | Class::MOP::Object |
64   +--------------------+    :      +--------------------+
65             |               :                ^
66             |               :                |
67             |    +---------------------+     |
68             +--->| Class::MOP::Package |-----+
69                  +---------------------+
70                  
71   legend:
72     ..(is an instance of)..>
73     --(is a subclass of)--->
74
75 A deeper discussion of this model is currently beyond the scope of 
76 this documenation. 
77   
78 =head1 METHODS
79
80 =over 4
81
82 =item B<meta>
83
84 =item B<dump (?$max_depth)>
85
86 This will C<require> the L<Data::Dumper> module and then dump a 
87 representation of your object. It passed the C<$max_depth> arg 
88 to C<$Data::Dumper::Maxdepth>. The default C<$max_depth> is 1, 
89 so it will not go crazy and print a massive bunch of stuff. 
90 Adjust this as nessecary.
91
92 =back
93
94 =head1 AUTHORS
95
96 Stevan Little E<lt>stevan@iinteractive.comE<gt>
97
98 =head1 COPYRIGHT AND LICENSE
99
100 Copyright 2006-2008 by Infinity Interactive, Inc.
101
102 L<http://www.iinteractive.com>
103
104 This library is free software; you can redistribute it and/or modify
105 it under the same terms as Perl itself.
106
107 =cut