public
Created

  • Download Gist
Utils.pm
Perl
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

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.