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 )