Commit | Line | Data |
34b924ec |
1 | package DBIx::Data::Store::Inflator::Simple; |
2 | |
3 | use strictures 1; |
4 | |
5 | sub new { |
6 | my $proto = shift; |
7 | bless({ %{$_[0]} }, ref($proto)||$proto); |
8 | } |
9 | |
10 | sub _class { shift->{class} } |
11 | sub _spec_columns { shift->{spec_columns} } |
12 | sub _body_columns { shift->{body_columns} } |
13 | sub _all_columns { shift->{all_columns} } |
14 | |
15 | sub inflate { |
16 | my ($self, $raw) = @_; |
17 | my %new; @new{@{$self->_all_columns}} = @$raw; |
18 | bless(\%new, $self->_class); |
19 | } |
20 | |
21 | sub deflate_spec { |
22 | my ($self, $spec) = @_; |
23 | [ @{$spec}{@{$self->_spec_columns}} ]; |
24 | } |
25 | |
26 | sub deflate_body { |
27 | my ($self, $spec) = @_; |
28 | [ @{$spec}{@{$self->_body_columns}} ]; |
29 | } |
30 | |
31 | 1; |