Astro-App-Satpass2
view release on metacpan or search on metacpan
t/format_template.t view on Meta::CPAN
Ephemeris Type: 0
Inclination: 72.8435 degrees
Ascending Node: 07:43:53 in right ascension
Eccentricity: 0.0086731
Argument Of Perigee: 52.6988 degrees from ascending node
Mean Anomaly: 110.5714 degrees
Element Number: 8
Revolutions At Epoch: 105
Period: 01:29:37
Semimajor Axis: 6634.0 kilometers
Perigee: 198.3 kilometers
Apogee: 313.4 kilometers
EOD
eval {
my $magic_word = 'Plugh';
$ft->add_formatter_method( {
default => {
width => 6,
},
dimension => {
dimension => 'string_pseudo_units',
},
fetch => sub {
## my ( $self, $name, $arg ) = @_;
my ( $self ) = @_; # Arguments unused
return qq["$self->{data}{magic_word}"];
},
name => 'magic_word',
} );
$ft->template( advent => q<A hollow voice says [% data.magic_word( width = '' ) %]> );
is $ft->format(
template => 'advent',
data => {
magic_word => $magic_word,
}
), qq{A hollow voice says "$magic_word"}, 'Add a formatter';
1;
} or fail "Added formatter failed: $@";
SKIP: {
load_or_skip( 'DateTime::Calendar::Christian', 1 );
eval {
require DateTime::TimeZone;
my $tz = DateTime::TimeZone->new( name => 'local' );
1;
} or do {
my $err = $@;
defined $err
or $err = 'Cannot determine local time zone';
chomp $err;
skip "$err under $^O", 1;
};
$ft->template( fubar => q<[% data.date( width = '' ) %]> );
$ft->time_formatter(
q<DateTime::Strftime,back_end=DateTime::Calendar::Christian> );
$ft->date_format( '%{year_with_christian_era}-%m-%d %{calendar_name}' );
my $dt = DateTime::Calendar::Christian->new(
year => -43,
month => 3,
day => 15,
time_zone => 'UTC',
);
is $ft->format(
template => 'fubar',
data => {
time => $dt->epoch(),
},
), q{44BC-03-15 Julian}, 'Julian dates';
}
done_testing;
1;
# ex: set textwidth=72 :
( run in 1.450 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )