The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
package Mojolicious::Plugin::BrowserDetect;

# ABSTRACT: HTTP::BrowserDetect integration for Mojolicious

use Mojo::Base 'Mojolicious::Plugin';

use HTTP::BrowserDetect;


my $key = 'HTTP::BrowserDetect';


sub register {
    my ($self, $app, $conf) = @_;

    $app->helper(
        browser => sub {
            my ($c) = @_;
            unless ($c->stash($key)) {
                $c->stash(
                    $key => HTTP::BrowserDetect->new(
                        $c->req->headers->user_agent,
                    ),
                );
            };
            return $c->stash($key);
        },
    ); 
}

1;



__END__
=pod

=head1 NAME

Mojolicious::Plugin::BrowserDetect - HTTP::BrowserDetect integration for Mojolicious

=head1 VERSION

version 0.003

=head1 SYNOPSIS

  # in your App module
  $self->plugin('browser_detect');

  # in your Mojolicious controller
  $self->browser->...

  # e. g. in your root/index action
  if ($self->browser->mobile) {
      return $self->redirect_to('/mobile');
  }

=head1 DESCRIPTION

This Mojolicious plugin integrates L<HTTP::BrowserDetect>.

=head1 SEE ALSO

L<HTTP::BrowserDetect>

=head1 AUTHOR

Uwe Voelker <uwe@uwevoelker.de>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Uwe Voelker.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut