package Catalyst::TraitFor::Request::BrowserDetect;
our $VERSION = '0.02';
# ABSTRACT: Browser detection for Catalyst::Requests
use Moose::Role;
use aliased 'HTTP::BrowserDetect';
use namespace::autoclean;
has browser => (
is => 'ro',
isa => BrowserDetect,
lazy => 1,
builder => '_build_browser',
);
requires 'user_agent';
sub _build_browser {
my ($self) = @_;
return BrowserDetect->new($self->user_agent);
}
1;
__END__
=pod
=head1 NAME
Catalyst::TraitFor::Request::BrowserDetect - Browser detection for Catalyst::Requests
=head1 VERSION
version 0.02
=head1 SYNOPSIS
package MyApp;
use Moose;
use namespace::autoclean;
use Catalyst;
use CatalystX::RoleApplicator;
extends 'Catalyst';
__PACKAGE__->apply_request_class_roles(qw/
Catalyst::TraitFor::Request::BrowserDetect
/);
__PACKAGE__->setup;
=head1 DESCRIPTION
Extend request objects with a method for browser detection.
=head1 ATTRIBUTES
=head2 browser
my $browser = $ctx->request->browser;
Returns an C<HTTP::BrowserDetect> instance for the request. This allows you to
get information about the client's user agent.
=head1 AUTHOR
Florian Ragwitz <rafl@debian.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Florian Ragwitz.
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