Как превратить статический Perl-скрипт в стиле CGI (xxx.pl) в динамическое приложение PSGI? - PullRequest
3 голосов
/ 23 февраля 2012

Perl-скрипты в стиле CGI сложно протестировать в этом стиле:

def test_it_says_hello_to_a_person
   get '/home.pl', :name => 'Simon'
   assert last_response.body.include?('Simon')
end

(Примечание: код в ruby, с использованием Rack::Test).

Но если я смогупревратить статический файл в приложение PSGI (ссылка на код, принять $env в качестве параметра, вернуть [$status, $header, $body]), все будет просто, а Plack::Test сделает все остальное.

Я читаю спецификацию PSGIВ общем я вижу маршрут к этому.Но я все еще хочу знать, есть ли какое-то колесо существования к этому?

Кроме того, я думаю, что интерфейс Plack::Test не так прекрасен, как Rack::Test, какие-нибудь альтернативы?

1 Ответ

7 голосов
/ 23 февраля 2012

Я думаю, вы хотите посмотреть на Plack :: App :: WrapCGI .Когда вы задаете ему сценарий Perl в качестве аргумента, он использует метод, подобный ModPerl :: Registry , чтобы скомпилировать ваш CGI-скрипт в приложение PSGI.И даже если он не может понять, как это сделать, у него есть возможность эмулировать полную среду CGI из среды PSGI, а это означает, что он может разветвляться и выполнять добросовестный CGI-сценарий (даже написанный на другом языке)запустить его под любым видом обработчика Plack, включая Plack :: Test.

...