HTTP-UserAgentString-Parser
view release on metacpan or search on metacpan
lib/HTTP/UserAgentString/Browser.pm view on Meta::CPAN
=item $browser->os
If defined, L<HTTP::UserAgentString::OS> object representing the operating system
where the browser is running.
=back
=head1 SEE ALSO
L<HTTP::UserAgentString::OS> for the class representing operating systems, and
L<HTTP::UserAgentString::Robot> for robots.
=head1 COPYRIGHT
Copyright (c) 2011 Nicolas Moldavsky (http://www.e-planning.net/)
This library is released under LGPL V3
=cut
use strict;
use base qw(HTTP::UserAgentString::Sys);
my @KEYS = qw(type name url company company_url ico info_url);
my $BROWSER = 0;
my $OFFLINE = 1;
my $MOBILE = 3;
my $EMAIL = 4;
my $LIBRARY = 5;
my $WAP = 6;
sub new($$$;$$) {
my ($pkg, $data, $typeDesc, $version, $os) = @_;
my $h = {};
for (my $i = 0; $i < scalar(@KEYS); $i++) {
my $val = $data->[$i];
if (defined($val) and (length($val) > 0)) {
$h->{$KEYS[$i]} = $val;
}
}
$h->{os} = $os;
$h->{version} = $version;
if (defined($version)) {
my @v = split(/\./, $version);
if (@v) {
$h->{major_version} = shift(@v);
if (@v) {
$h->{minor_version} = shift(@v);
}
}
}
$h->{typeDesc} = $typeDesc;
return bless($h, $pkg);
}
sub type($) { $_[0]->{type} }
sub info_url($) { $_[0]->{info_url} }
sub os($) { $_[0]->{os} }
sub version($) { $_[0]->{version} }
sub major_version($) { $_[0]->{major_version} }
sub minor_version($) { $_[0]->{minor_version} }
sub typeDesc($) { $_[0]->{typeDesc} }
sub isRobot($) { 0 }
sub isBrowser($) { $BROWSER == $_[0]->type }
sub isOffline($) { $OFFLINE == $_[0]->type }
sub isMobile($) { $MOBILE == $_[0]->type }
sub isEmail($) { $EMAIL == $_[0]->type }
sub isLibrary($) { $LIBRARY == $_[0]->type }
sub isWAP($) { $WAP == $_[0]->type }
1;
( run in 1.594 second using v1.01-cache-2.11-cpan-5b529ec07f3 )