Astro-SpaceTrack
view release on metacpan or search on metacpan
inc/Astro/SpaceTrack/Dumper.pm view on Meta::CPAN
package Astro::SpaceTrack::Dumper;
use 5.006002;
use strict;
use warnings;
use Carp;
use JSON;
use Astro::SpaceTrack;
use HTTP::Response;
use HTTP::Status qw{ HTTP_OK };
our @ISA = qw{ Astro::SpaceTrack };
# NOTE that these live in inc/, but so does this module, so we assume
# inc/ is already in @INC.
use Mock::LWP::UserAgent;
use My::Module::Test;
our $VERSION = '0.181';
sub new {
my ( $class, %arg ) = @_;
local $Mock::LWP::UserAgent::CANNED_RESPONSE_FILE = delete
$arg{canned_response_file};
my $self = $class->SUPER::new( %arg );
$self->{ +__PACKAGE__ } = Mock::LWP::UserAgent::__load_data(
optional => 1,
);
return $self;
}
sub site_check {
my ( $self, $site ) = @_;
my $uri = My::Module::Test::__site_to_check_uri( $site )
or die "No check URI for site '$site'\n";
return $self->_get_from_net( url => $uri );
}
sub _readline_complete_command_site_check {
# my ( $self, $text, $line, $start, $cmd_line ) = @_;
my ( $self, $text ) = @_;
my @sites = My::Module::Test::__site_codes();
$text eq ''
and return @sites;
my $re = qr/ \A \Q$text\E /smx;
return grep { $_ =~ $re } @sites;
}
sub request {
my ( $self, $method, $uri ) = @_;
defined $uri
or ( $method, $uri ) = ( GET => $method );
return $self->_get_from_net(
method => uc $method,
url => $uri,
);
}
{
my $json;
my $keep;
# Accessed via address space scan in _list_censors()
sub _censor_json { ## no critic (ProhibitUnusedPrivateSubroutines)
my ( $data ) = @_;
$data =~ m/ \A \s* [[] \s* [{] .* [}] \s* []] \s* \z /smx
or return;
$json ||= JSON->new()->utf8()->pretty()->canonical();
$keep ||= {
map { $_ => 1 } qw{
COMMENT
COMMENTCODE
COUNTRY
DECAY
FILE
INTLDES
LAUNCH
LAUNCH_NUM
LAUNCH_PIECE
LAUNCH_YEAR
NORAD_CAT_ID
OBJECT_ID
OBJECT_NAME
OBJECT_NUMBER
OBJECT_TYPE
( run in 1.649 second using v1.01-cache-2.11-cpan-ceb78f64989 )