Weather::Com::UVIndex - class containing the uv index data


Weather-Com documentation Contained in the Weather-Com distribution.

Index


Code Index:

NAME

Top

Weather::Com::UVIndex - class containing the uv index data

SYNOPSIS

Top

  #!/usr/bin/perl -w
  use Weather::Com::Finder;

  # you have to fill in your ids from weather.com here
  my $PartnerId  = 'somepartnerid';
  my $LicenseKey = 'mylicense';

  my %weatherargs = (
	'partner_id' => $PartnerId,
	'license'    => $LicenseKey,
	'language'   => 'de',
  );

  my $weather_finder = Weather::Com::Finder->new(%weatherargs);

  my @locations = $weather_finder->find('Heidelberg');

  my $currconditions = $locations[0]->current_conditions();

  print "The current uv index is ", $currconditions->uv_index()->index(), "\n";
  print "This is relatively ", $currconditions->uv_index()->description(), "\n";  

DESCRIPTION

Top

Via Weather::Com::UVIndex one can access the uv index and its description (whether it's high or low). An uv index is usually an object belonging to current conditions or to a forecast (not implemented yet).

This class will not be updated automatically with each call to one of its methods. You need to call the uv_index() method of the parent object again to update your object.

CONSTRUCTOR

Top

You usually would not construct an object of this class yourself. This is implicitely done when you call the uv_index() method of one current conditions or forecast object.

METHODS

Top

index()

Returns the uv index (number).

description([$language])

Returns the description whether this index is high or low.

This description is translated if you specified the language option as argument while instantiating your Weather::Com::Finder.

This attribute is dynamic language enabled.

AUTHOR

Top

Thomas Schnuecker, <thomas@schnuecker.de>

COPYRIGHT AND LICENSE

Top


Weather-Com documentation Contained in the Weather-Com distribution.

package Weather::Com::UVIndex;

use 5.006;
use strict;
use warnings;
use Weather::Com::L10N;
use base 'Weather::Com::Object';

our $VERSION = sprintf "%d.%03d", q$Revision: 1.9 $ =~ /(\d+)/g;

#------------------------------------------------------------------------
# Constructor
#------------------------------------------------------------------------
sub new {
	my $proto = shift;
	my $class = ref($proto) || $proto;
	my %parameters;

	# parameters provided by new method
	if ( ref( $_[0] ) eq "HASH" ) {
		%parameters = %{ $_[0] };
	} else {
		%parameters = @_;
	}

	my $self = $class->SUPER::new( \%parameters );

	# getting first weather information
	$self->{INDEX}       = -1;
	$self->{DESCRIPTION} = 'unknown';

	return $self;
}    # end new()

#------------------------------------------------------------------------
# update wind data
#------------------------------------------------------------------------
sub update {
	my $self = shift;
	my %uv;

	if ( ref( $_[0] ) eq "HASH" ) {
		%uv = %{ $_[0] };
	} else {
		%uv = @_;
	}

	unless ( $uv{i} ) {
		$self->{INDEX}       = -1;
		$self->{DESCRIPTION} = "unknown";
	} else {
		$self->{INDEX}       = $uv{i};
		$self->{DESCRIPTION} = lc( $uv{t} );
	}

	return 1;
}

#------------------------------------------------------------------------
# accessor methods
#------------------------------------------------------------------------
sub index {
	my $self = shift;
	return $self->{INDEX};
}

sub description {
	my $self     = shift;
	my $language = shift;

	return $self->get_language_handle($language)
	  ->maketext( $self->{DESCRIPTION} );
}

1;

__END__