The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
#
# Ham::Resources::Propagation test module
# Test and Use procedures
#
# (c) Carlos Juan Diaz <ea3hmb at gmail.com> on Dec. 2011
#

use strict;
use warnings;
use lib '../lib';
use Ham::Resources::Propagation;

my $data = shift;
my $groups = qr/solar_data|hf|vhf|extended/i;

chomp($data);

if (!$data) 
{
	print "\nUsage: 'groups' list of groups available, 'all' for all datas, 'list' for item list, 'any data' for a valid data name or group.\n";
	exit 0;
}

my $propagation = Ham::Resources::Propagation->new('description','text'); # numeric or text
die $propagation->error_message if $propagation->is_error;

# list of availables groups of information
if ($data =~ /groups/i)
{	
	print "\nGroups availables:\n";
	print "-" x20,"\n";
	foreach (sort @{$propagation->get_groups})
	{
		  print $_."\n";
	}
	exit 1;	
}

# access items list
if ($data =~ /list/i)
{
	print "\nAll items list:\n";
	print "-" x20,"\n";
	foreach (sort @{$propagation->all_item_names})
	{
		  print $_."\n";
	}
	exit 1;
}

# access data throught get method
if ($data =~ /all/i)
{
	print "\nget method:\n";
	print "-" x20,"\n";
	foreach (@{$propagation->all_item_names}) # recommeded don't use sort
	{
		  print "$_ = ".$propagation->get($_)."\n";
	}
	exit 1;
}

# access data with category
if ($data =~ $groups)
{
	foreach (sort keys %{$propagation->{$data}})
	{
		print $_.": ".$propagation->{$data}->{$_}."\n";
	}
	exit 1;
}

# access unique data
if ($data !~ $groups)
{
	print "$data: ".$propagation->get($data);

	print "\n\n";
	exit 1;
}