Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
use utf8;
package EMS::Mojolicious::Utils;
use Mojo::Base 'Mojolicious::Plugin';
=head1 NAME
EMS::Mojolicious::Utils - General purpose Mojolicious helpers for EMS
use Mojolicious::Lite;
plugin 'EMS::Mojolicious::Utils';
get '/action/*arg' => { arg => '' } => sub {
my $c = shift;
$c->render_text('server URL is: '.$c->server_url);
Various small Mojolicious utility helpers package.
Currently provides L</server_url>.
sub register {
my ($self, $app) = @_;
return if exists $app->renderer->helpers->{server_url};
$app->helper(server_url => \&_server_url);
=head1 HELPERS
=head2 server_url
Returns the base URL of the server the app is on as a L<Mojo::URL> object.
sub _server_url {
my $c = shift;
my $url = Mojo::URL->new;
$url->scheme(exists $ENV{HTTPS} ? 'https' : 'http');
my ($host, $port) = split /:/, $ENV{HTTP_HOST}, 2;
return $url;
=head1 AUTHOR
Rafael Kitover <>
__PACKAGE__; # End of EMS::Mojolicious::Utils
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment