From c35cc8a94ee5682acbbe4429e3dabab9a1669268 Mon Sep 17 00:00:00 2001 From: Mateu X Hunter Date: Mon, 7 Mar 2011 08:25:28 -0700 Subject: [PATCH] Add initial wtfgi script --- script/wtf-gi.pl | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 script/wtf-gi.pl diff --git a/script/wtf-gi.pl b/script/wtf-gi.pl new file mode 100644 index 0000000..a9f6fad --- /dev/null +++ b/script/wtf-gi.pl @@ -0,0 +1,68 @@ +use 5.010; + +my $messages = [ + { + name => 'ViewPage', + request_method => 'get', + route => '/page/:id', + response => '$mojito->view_page($params)', + response_type => 'html' + }, + { + name => 'EditPage', + request_method => 'get', + route => '/page/:id/edit', + response => '$mojito->edit_page_form($params)', + response_type => 'html', + }, + { + name => 'EditPage', + request_method => 'post', + route => '/page/:id/edit', + response => '$mojito->edit_page($params)', + response_type => 'redirect', + }, +]; + +foreach my $message (@{$messages}) { + say transform_mojo($message); +} + +sub transform_dancer { + my $message = shift; + + if ( $message->{response_type} eq 'html' ) { + $message->{response} = 'return ' . $message->{response}; + } + elsif ( $message->{response_type} eq 'redirect' ) { + $message->{response} = 'redirect ' . $message->{response}; + } + + my $route_body = <<"END_BODY"; +$message->{request_method} $message->{route} => sub { + my \$params = scalar params; + $message->{response}; +}; +END_BODY + + return $route_body; +} + +sub transform_mojo { + my $message = shift; + + if ( $message->{response_type} eq 'html' ) { + $message->{response} = '$self->render( text => ' . $message->{response} . ')'; + } + elsif ( $message->{response_type} eq 'redirect' ) { + $message->{response} = '$self->redirect_to(' . $message->{response} .')'; + } + + my $route_body = <<"END_BODY"; +$message->{request_method} $message->{route} => sub { + my \$params = scalar params; + $message->{response}; +}; +END_BODY + +}