umes and produces protobuf messages
(See L<https://github.com/cucumber/messages>). Messages
use ndjson formatting.
The start of the pipeline is the Gherkin language parser. C<Gherkin>
implements that
e> message sent to
the sink is wrapped in an envelope which has a C<to_json> method to create
UTF-8 encoded L<NDJSON|http://ndjson.org/> output.
C<$id_gen> and C<$sink> are as documented in C<from_pa
[ qw/out_handle include_source include_ast
include_pickles predictable_ids /, ];
use Cpanel::JSON::XS;
use Data::UUID;
use Getopt::Long qw(GetOptionsFromArray :config bundling);
use Pod::Usage;
y $fh = $self->out_handle;
return sub {
my $msg = shift;
print $fh $msg->to_json . "\n";
};
}
sub run {
my ( $self, @file_list ) = @_;
Gherkin->from_paths(\@file_li
ven
if ( my $filename = $options->{'dictionary_location'} ) {
require Cpanel::JSON::XS;
open( my $fh, '<', $filename ) || die "Can't open [$filename]";
my $
, (<$fh>);
close $fh;
$options->{'dictionary'} = Cpanel::JSON::XS::decode_json($input);
} else {
## no critic (ProhibitPackageVars)
require Gher
rd).
Mutually exclusive with C<dictionary_location>.
=item * dictionary_location
Pathname to a JSON file which deserializes into the structure mentioned
for the C<dictionary> option.
Mutually excl