#!/usr/bin/perl

use 5.010;
use strict;
use warnings;

use JSON;
use Scalar::Util 'looks_like_number';
use YAML::Syck;

our $VERSION = '0.83'; # VERSION

{
    local $/;
    local $YAML::Syck::ImplicitTyping = 1;

    my $input = YAML::Syck::Load(scalar <>);
    if (ref($input) eq 'ARRAY' && @$input > 0 && @$input <= 3 &&
            looks_like_number($input->[0]) && !ref($input->[1])) {
        $input = $input->[2];
    }
    print YAML::Syck::Dump($input);
}

#ABSTRACT: Strip result envelope (YAML version)
#PODNAME: strip-result-env-yaml

__END__

=pod

=encoding utf-8

=head1 NAME

strip-result-env-yaml - Strip result envelope (YAML version)

=head1 VERSION

version 0.83

=head1 SYNOPSIS

 % cmdline-script ... --format=yaml | strip-result-env-yaml

=head1 DESCRIPTION

This is a simple utility to strip result envelope (that is, the status and
message). It will change:

 [200, "OK", {foo: bar}]
 [405, "Not found"]
 [200, "OK", "result", {result_metadata1: "val"}]

to:

 {foo: bar}
 ~
 "result"

It accepts and outputs YAML (parsing is done with L<YAML::Syck> Perl module). It
passes data unchanged if input data is not enveloped result. It dies on error.

=head1 SEE ALSO

L<Perinci::CmdLine>

=head1 AUTHOR

Steven Haryanto <stevenharyanto@gmail.com>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Steven Haryanto.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
