package SQL::Translator::Schema::Object;
# ----------------------------------------------------------------------
-# $Id: Object.pm,v 1.5 2005-06-27 21:58:42 duality72 Exp $
+# $Id$
# ----------------------------------------------------------------------
-# Copyright (C) 2002-4 SQLFairy Authors
+# Copyright (C) 2002-2009 SQLFairy Authors
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
use Class::Base;
use base 'Class::Data::Inheritable';
use base 'Class::Base';
-use Data::Compare;
+use Class::MakeMethods::Utility::Ref qw( ref_compare );
use vars qw[ $VERSION ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/;
+$VERSION = '1.99';
=head1 Construction
-Derived classes should decalare their attributes using the C<_attributes>
+Derived classes should declare their attributes using the C<_attributes>
method. They can then inherit the C<init> method from here which will call
accessors of the same name for any values given in the hash passed to C<new>.
Note that you will have to impliment the accessors your self and we expect perl
my $other = shift;
return 0 unless $other;
- return 1 if $self eq $other;
+ return 1 if overload::StrVal($self) eq overload::StrVal($other);
return 0 unless $other->isa( __PACKAGE__ );
return 1;
}
# ----------------------------------------------------------------------
-sub _compare_objects($$;$) {
+sub _compare_objects {
my $self = shift;
- # Suppress spurious Data::Compare warnings
- local $SIG{__WARN__} = sub {};
- Data::Compare::Compare(shift, shift, shift);
+ my $obj1 = shift;
+ my $obj2 = shift;
+ my $result = (ref_compare($obj1, $obj2) == 0);
+# if ( !$result ) {
+# use Carp qw(cluck);
+# cluck("How did I get here?");
+# use Data::Dumper;
+# $Data::Dumper::Maxdepth = 1;
+# print "obj1: ", Dumper($obj1), "\n";
+# print "obj2: ", Dumper($obj2), "\n";
+# }
+ return $result;
}
#=============================================================================