diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-04-30 16:19:37 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-04-30 16:19:37 -0500 |
commit | 6739d8c87dda4f543400305d5a06c128ab87492d (patch) | |
tree | 2ef4378acb6b2c3f1be151fc7aaa2c317426ebfc /lib/Spreadsheet/Template/Generator.pm | |
parent | c65fbd0739771a9cb06a6531b5a993bbe110f814 (diff) | |
download | spreadsheet-template-6739d8c87dda4f543400305d5a06c128ab87492d.tar.gz spreadsheet-template-6739d8c87dda4f543400305d5a06c128ab87492d.zip |
start sketching out the template generator
Diffstat (limited to 'lib/Spreadsheet/Template/Generator.pm')
-rw-r--r-- | lib/Spreadsheet/Template/Generator.pm | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Spreadsheet/Template/Generator.pm b/lib/Spreadsheet/Template/Generator.pm new file mode 100644 index 0000000..aa5e0e0 --- /dev/null +++ b/lib/Spreadsheet/Template/Generator.pm @@ -0,0 +1,28 @@ +package Spreadsheet::Template::Generator; +use Moose; + +use Class::Load 'load_class'; +use JSON; + +sub generate { + my $self = shift; + my ($filename) = @_; + (my $ext = $filename) =~ s/.*\.//; + my $class = $self->parser_classes->{$ext}; + load_class($class); + my $parser = $class->new; + my $data = $parser->parse($filename); + return JSON->new->pretty->encode($data); +} + +sub parser_classes { + +{ + 'xls' => 'Spreadsheet::Template::Generator::Parser::XLS', + 'xlsx' => 'Spreadsheet::Template::Generator::Parser::XLSX', + } +} + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; |