blob: e61aa12eabe0c2c2c24c13ddb2c223414d97a12c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
package WWW::YNAB::ModelHelpers;
use Moose::Role;
sub model_from_data {
my $self = shift;
my ($class, $data, $server_knowledge) = @_;
my @init_args = grep {
$_ !~ /^_/
} map {
$_->init_arg
} $class->meta->get_all_attributes;
my %args = map {
$_ => $data->{$_}
} grep {
exists $data->{$_}
} @init_args;
if (defined $server_knowledge) {
$args{server_knowledge} = $server_knowledge;
}
$class->new(%args, _ua => $self->_ua);
}
no Moose::Role;
1;
|