diff options
-rw-r--r-- | lib/Spreadsheet/Template.pm | 25 | ||||
-rw-r--r-- | t/template.t | 5 |
2 files changed, 12 insertions, 18 deletions
diff --git a/lib/Spreadsheet/Template.pm b/lib/Spreadsheet/Template.pm index e4c568a..5a2aa23 100644 --- a/lib/Spreadsheet/Template.pm +++ b/lib/Spreadsheet/Template.pm @@ -366,10 +366,9 @@ has writer_options => ( default => sub { {} }, ); -has processor => ( +has _processor => ( is => 'ro', does => 'Spreadsheet::Template::Processor', - handles => 'Spreadsheet::Template::Processor', lazy => 1, default => sub { my $self = shift; @@ -379,18 +378,12 @@ has processor => ( }, ); -has writer => ( - is => 'ro', - does => 'Spreadsheet::Template::Writer', - handles => 'Spreadsheet::Template::Writer', - lazy => 1, - default => sub { - my $self = shift; - my $class = $self->writer_class; - load_class($class); - return $class->new($self->writer_options); - }, -); +sub _writer { + my $self = shift; + my $class = $self->writer_class; + load_class($class); + return $class->new($self->writer_options); +} =method render($template, $vars) @@ -404,11 +397,11 @@ L<Spreadsheet::Template::Writer> instance. sub render { my $self = shift; my ($template, $vars) = @_; - my $contents = $self->process($template, $vars); + my $contents = $self->_processor->process($template, $vars); # not decode_json, since we expect that we are already being handed a # character string (decode_json also decodes utf8) my $data = from_json($contents); - return $self->write($data); + return $self->_writer->write($data); } __PACKAGE__->meta->make_immutable; diff --git a/t/template.t b/t/template.t index fd581dd..86d5005 100644 --- a/t/template.t +++ b/t/template.t @@ -6,9 +6,10 @@ use Test::More; use Spreadsheet::ParseXLSX; use Spreadsheet::Template; +my $template = Spreadsheet::Template->new; my $data = do { local $/; local @ARGV = ('t/data/template.json'); <> }; { - my $excel = Spreadsheet::Template->new->render( + my $excel = $template->render( $data, { rows => [ @@ -51,7 +52,7 @@ my $data = do { local $/; local @ARGV = ('t/data/template.json'); <> }; } { - my $excel = Spreadsheet::Template->new->render( + my $excel = $template->render( $data, { rows => [ |