Add enum type
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Role / Compare.pm
1 package SQL::Translator::Schema::Role::Compare;
2
3 =head1 NAME
4
5 SQL::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
16
17 This L<Moo::Role> provides a method to compare if two objects are the
18 same.
19
20 =cut
21
22 use Moo::Role;
23
24 =head1 METHODS
25
26 =head2 equals
27
28 Determines if this object is the same as another.
29
30   my $isIdentical = $object1->equals( $object2 );
31
32 =cut
33
34 sub equals {
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
44 sub _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
63 1;