package Weather::Com::AirPressure; use 5.006; use strict; use warnings; use Weather::Com::L10N; use base 'Weather::Com::Object'; our $VERSION = sprintf "%d.%03d", q$Revision: 1.2 $ =~ /(\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->{PRESSURE} = -1; $self->{TENDENCY} = 'unknown'; return $self; } # end new() #------------------------------------------------------------------------ # update barometric data #------------------------------------------------------------------------ sub update { my $self = shift; my %bar; if ( ref( $_[0] ) eq "HASH" ) { %bar = %{ $_[0] }; } else { %bar = @_; } unless ( $bar{r} ) { $self->{PRESSURE} = -1; } else { $self->{PRESSURE} = lc( $bar{r} ); } unless ( $bar{d} ) { $self->{TENDENCY} = "unknown"; } else { $self->{TENDENCY} = lc( $bar{d} ); } return 1; } #------------------------------------------------------------------------ # access moon data #------------------------------------------------------------------------ sub pressure { my $self = shift; return $self->{PRESSURE}; } sub tendency { my $self = shift; my $language = shift; return $self->get_language_handle($language)->maketext(lc($self->{TENDENCY}) ); } 1; __END__ =pod =head1 NAME Weather::Com::AirPressure - class containing barometric pressure data =head1 SYNOPSIS #!/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, ); my $weather_finder = Weather::Com::Finder->new(%weatherargs); my @locations = $weather_finder->find('Heidelberg'); my $currconditions = $locations[0]->current_conditions(); print "Barometric pressure is ", $currconditions->pressure()->pressure(), "\n"; print "and it's ", $currconditions->pressure()->tendency(), "\n"; =head1 DESCRIPTION Via I one can access the barometric pressure and its tendency. This class will B be updated automatically with each call to one of its methods. You need to call the C method of the parent object again to update your object. =head1 CONSTRUCTOR You usually would not construct an object of this class yourself. This is implicitely done when you call the C method of one current conditions or forecast object. =head1 METHODS =head2 pressure() Returns the barometric pressure. =head2 tendency([$language]) Returns the tendency of the barometric pressure. This attribute is I. =head1 AUTHOR Thomas Schnuecker, Ethomas@schnuecker.deE =head1 COPYRIGHT AND LICENSE Copyright (C) 2004-2009 by Thomas Schnuecker This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The data provided by I and made accessible by this OO interface can be used for free under special terms. Please have a look at the application programming guide of I (L)! =cut