Commit | Line | Data |
9d759b64 |
1 | package DX::Resolution; |
2 | |
c99dbb05 |
3 | use DX::Utils qw(expand_deps); |
9d759b64 |
4 | use DX::Class; |
5 | |
22d29594 |
6 | has veracity_depends_on => (is => 'ro', required => 1, isa => DependencyList); |
9d759b64 |
7 | |
22d29594 |
8 | has actions => (is => 'ro', required => 1, isa => ArrayRef[Action]); |
9d759b64 |
9 | |
113f21b9 |
10 | sub next_resolution { $_[0] } |
11 | |
12 | sub remainder { () } |
13 | |
c99dbb05 |
14 | sub for_deparse { |
15 | my ($self) = @_; |
6162b001 |
16 | [ word_and_body => [ |
17 | 'resolution', |
c99dbb05 |
18 | [ pairs => [ |
19 | (@{$self->actions} |
20 | ? [ actions => [ block => $self->actions ] ] |
21 | : ()), |
22 | [ veracity_depends_on => [ block => [ |
23 | map [ statement => [ |
24 | [ symbol => (split '::', ${$_->[0]})[-1] ], |
25 | [ value_path => [ @{$_}[1..$#$_] ] ], |
26 | ] ], @{expand_deps($self->veracity_depends_on)} |
27 | ] ] ], |
28 | ] ], |
29 | ] ]; |
30 | } |
31 | |
9d759b64 |
32 | 1; |