Line # Revision Author
1 478 ahitrov <%once>
2
3 use JSON::XS;
4
5 </%once>
6 <%args>
7
8 $name => undef
9 $SETS => undef
10 $object => undef
11
12 </%args>
13 <%init>
14
15 return undef unless ref($SETS);
16 return undef unless $name;
17 return undef unless $SETS->{$name};
18
19 my ($prop) = grep { $_->{attr} eq $name } $object->structure;
20 my $class = $object->class;
21 my $is_extra = grep { ref $_ && $_->{attr} eq $name } $class->extra_properties ? 1 : 0;
22
23 my $result;
24 if ( $is_extra && !$prop->{serialize} ) {
25 eval { $result = JSON::XS->new->decode( $SETS->{$name} ) };
26 } else {
27 $result = $SETS->{$name};
28 }
29 warn Dumper $result;
30 return $result;
31
32 </%init>