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