lift _make_equal from predicate role to Eq.pm
[scpubgit/DX.git] / lib / DX / Role / Predicate.pm
1 package DX::Role::Predicate;
2
3 use List::Util qw(reduce);
4 use DX::Utils qw(step CONTENTS_OF);
5 use DX::Role;
6
7 sub resolution_step_for {
8   my ($self, $prop, @args) = @_;
9   my ($last, @rest) = reverse $self->_possible_resolution_list(@args);
10   return undef unless $last;
11   my $targ = $last->but(resolves => $prop);
12   $targ = $_->but(
13     alternative_step => $targ,
14     resolves => $prop
15   ) for @rest;
16   return $targ;
17 }
18
19 sub selection_depends_on {
20   my ($self, @args) = @_;
21   \@args;
22 }
23
24 1;