Created
March 29, 2013 02:17
-
-
Save rkitover/5268298 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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