Weather::Com::Moon - class containing moon phase information


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

Index


Code Index:

NAME

Top

Weather::Com::Moon - class containing moon phase information

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 moon phase is currently ", 
    $currconditions->moon()->description(), "\n";

DESCRIPTION

Top

Via Weather::Com::Moon one can access the current moon phase.

This class will not be updated automatically with each call to one of its methods. You need to call the moon() 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 moon() method of one current conditions or forecast object.

METHODS

Top

description([$language])

Returns a textual description of the current moon phase.

This description is translated if you specified the language option for you Weather::Com::Finder.

This attribute is dynamic language enabled.

icon()

Returns the number of the icon describing the current moon phase.

AUTHOR

Top

Thomas Schnuecker, <thomas@schnuecker.de>

COPYRIGHT AND LICENSE

Top


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

package Weather::Com::Moon;

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

our $VERSION = sprintf "%d.%03d", q$Revision: 1.7 $ =~ /(\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->{ICON}        = undef;
	$self->{DESCRIPTION} = '';

	return $self;
}    # end new()

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

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

	$self->{ICON}        = $moon{icon};
	$self->{DESCRIPTION} = lc( $moon{t} );

	return 1;
}

#------------------------------------------------------------------------
# access moon data
#------------------------------------------------------------------------
sub icon {
	my $self = shift;
	return $self->{ICON};
}

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

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

1;

__END__