Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist
View Utils.pm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
use utf8;
package EMS::Mojolicious::Utils;
 
use Mojo::Base 'Mojolicious::Plugin';
 
=head1 NAME
EMS::Mojolicious::Utils - General purpose Mojolicious helpers for EMS
=head1 SYNOPSIS
use Mojolicious::Lite;
plugin 'EMS::Mojolicious::Utils';
get '/action/*arg' => { arg => '' } => sub {
my $c = shift;
$c->render_text('server URL is: '.$c->server_url);
};
=head1 DESCRIPTION
Various small Mojolicious utility helpers package.
Currently provides L</server_url>.
=cut
 
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.
=cut
 
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;
 
$url->host($host);
$url->port($port);
 
$url->path('/');
 
return $url;
}
 
=head1 AUTHOR
Rafael Kitover <rkitover@amsreo.com>
=cut
 
__PACKAGE__; # End of EMS::Mojolicious::Utils
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.