Document new roles, types and utility functions
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Role / Compare.pm
CommitLineData
5f7fd749 1package SQL::Translator::Schema::Role::Compare;
5f7fd749 2
4e43db0d 3=head1 NAME
4
5SQL::Translator::Schema::Role::Compare - compare objects
6
7=head1 SYNOPSIS
8
9 package Foo;
10 use Moo;
11 with qw(SQL::Translator::Schema::Role::Compare);
12
13 $obj->equals($other);
14
15=head1 DESCRIPTION
5f7fd749 16
4e43db0d 17This L<Moo::Role> provides a method to compare if two objects are the
18same.
19
20=cut
21
22use Moo::Role;
23
24=head1 METHODS
5f7fd749 25
26=head2 equals
27
28Determines if this object is the same as another.
29
30 my $isIdentical = $object1->equals( $object2 );
31
32=cut
33
4e43db0d 34sub equals {
5f7fd749 35 my $self = shift;
36 my $other = shift;
37
38 return 0 unless $other;
39 return 1 if overload::StrVal($self) eq overload::StrVal($other);
40 return 0 unless $other->isa( ref($self) );
41 return 1;
42}
43
44sub _compare_objects {
45# my ($self, $obj1, $obj2) = @_;
46
47 my $result = (
48 Data::Dumper->new([$_[1]])->Terse(1)->Indent(0)->Deparse(1)->Sortkeys(1)->Maxdepth(0)->Dump
49 eq
50 Data::Dumper->new([$_[2]])->Terse(1)->Indent(0)->Deparse(1)->Sortkeys(1)->Maxdepth(0)->Dump
51 );
52# if ( !$result ) {
53# use Carp qw(cluck);
54# cluck("How did I get here?");
55# use Data::Dumper;
56# $Data::Dumper::Maxdepth = 1;
57# print "obj1: ", Dumper($obj1), "\n";
58# print "obj2: ", Dumper($obj2), "\n";
59# }
60 return $result;
61}
62
631;