2012-06-02 1 views
3

Я работаю над проектом, который в основном является Ruby on Rails. Тем не менее, мне нужно сгенерировать и проанализировать файлы Excel в этом проекте (знаю, я знаю ...), поэтому я использую Perl's Spreadsheet :: WriteExcel и Spreadsheet :: ParseExcel, которые хорошо работают. Однако, как лучше всего сочетать это использование Perl с большим приложением Ruby on Rails? Вызывает ли сценарий Perl с обратными окнами кошерный способ этого? Это кажется мне немного взломанным, но если это единственный (или лучший) способ, то вот что я сделаю. Я хотел дотянуться и посмотреть, есть ли у кого-нибудь какие-то предложения или рекомендации.Написание приложения с Perl и Ruby?

Спасибо!

ответ

5

Существует также speadsheet gem, хотя я никогда не использовал его для записи.

Я не думаю, что с использованием backticks или %x() есть что-то по-настоящему неправильное, хотя вместо этого я мог бы представить материал Perl как услугу, чтобы сделать ее более общей. Скорее всего, избыток.

+0

Спасибо за указание на драгоценный камень! Я взгляну. Я думаю, что маршрут обслуживания может быть лучшим способом пойти на этот конкретный проект, хотя, даже если он может быть излишним. Спасибо! –

3

Возможно, вы изучите создание простого приложения RESTful с использованием инфраструктуры webapp Perl, например Mojolicious. Ваше приложение RoR может просто вызвать вызовы в приложение Perl и вернуть JSON обратно.

Вот очень простое приложение, конечно, ваше get_data что-то сделало, просто попробую вернуть простой хэш. После того, как вы установили Mojolicious вы можете запустить его с одним из своих встроенных серверов, например: morbo myapp.pl

#!/usr/bin/env perl 
use Mojolicious::Lite; 

get '/:query' => sub { 
    my $self = shift; 
    my $query = $self->param('query'); 
    my $data = get_data($query); 
    $self->render(json => $data); 
}; 

app->start; 

sub get_data { 
    my $query = shift; 
    # do something here, like parse some excel file 
    # I will just make some silly data 
    my $data = { $query => $query }; 
    return $data; 
} 
1

Я не знаю, как много сторонних (предполагается, что сохраняется как myapp.pl конечно следующее) что он поддерживает, но есть проект ruby-perl: встроенный Perl в Ruby.

Смежные вопросы