Codebase list libattean-perl / 2165293
Added -n CLI argument to attean_parse to allow numbering of results. Gregory Todd Williams 3 years ago
2 changed file(s) with 25 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
2525 my $list = 0;
2626 my $block_size = 25;
2727 my $short = 0;
28 my $number_rows = 0;
2829 my %namespaces;
2930 my $in_format = 'GUESS';
3031 my $out_format = 'TextTable';
31 my $result = GetOptions ("short" => \$short, "list" => \$list, "verbose" => \$verbose, "block=i" => \$block_size, "pull" => \$pull, "push" => \$push, "in=s" => \$in_format, "out=s" => \$out_format, "define=s" => \%namespaces, "D=s" => \%namespaces);
32 my $result = GetOptions ("number" => \$number_rows, "short" => \$short, "list" => \$list, "verbose" => \$verbose, "block=i" => \$block_size, "pull" => \$pull, "push" => \$push, "in=s" => \$in_format, "out=s" => \$out_format, "define=s" => \%namespaces, "D=s" => \%namespaces);
3233
3334 if ($list) {
3435 say "Parsers:";
7172 parse_to_string($parser, $fh);
7273 } else {
7374 my $sclass = Attean->get_serializer($out) || die "*** No serializer found for format $out\n";
74 my $serializer = $sclass->new(namespaces => $map);
75 my $serializer = $sclass->new(namespaces => $map, number_rows => $number_rows);
7576
7677 try {
7778 if ($pull) {
3636
3737 package AtteanX::Serializer::TextTable 0.028 {
3838 use Moo;
39 use Types::Standard qw(Str ArrayRef);
39 use Types::Standard qw(Str Bool ArrayRef);
4040 use Encode qw(encode);
4141 use Scalar::Util qw(blessed);
4242 use Attean::ListIterator;
4646
4747 my @rule = qw(- +);
4848 has 'canonical_media_type' => (is => 'ro', isa => Str, init_arg => undef, default => 'text/plain');
49 has 'number_rows' => (is => 'rw', isa => Bool, default => 0);
4950
5051 =item C<< media_types >>
5152
8586 } else {
8687 @vars = qw(subject predicate object graph);
8788 }
88
89
90 my @header_names = @vars;
91 if ($self->number_rows) {
92 unshift(@header_names, '#');
93 }
94
8995 my @headers = (\q"| ");
90 push(@headers, map { $_ => \q" | " } @vars);
96 push(@headers, map { $_ => \q" | " } @header_names);
9197 pop @headers;
9298 push @headers => (\q" |");
9399
95101
96102 my @rule = qw(- +);
97103 my @rows;
104 my $row = 1;
98105 while (my $t = $iter->next()) {
99106 my @strings = map { blessed($_) ? $_->as_string : '' } map { eval { $t->value($_) } } @vars;
107 if ($self->number_rows) {
108 unshift(@strings, $row++);
109 }
100110 push(@rows, \@strings);
101111 }
102112 $table->load(@rows);
123133 my $iter = shift;
124134
125135 my @vars = @{ $iter->variables };
126
136 my @header_names = @vars;
137 if ($self->number_rows) {
138 unshift(@header_names, '#');
139 }
127140
128141 my @headers = (\q"| ");
129 push(@headers, map { $_ => \q" | " } @vars);
142 push(@headers, map { $_ => \q" | " } @header_names);
130143 pop @headers;
131144 push @headers => (\q" |");
132145
133146 my $table = Text::Table->new(@headers);
134147
135148 my @rows;
149 my $row = 1;
136150 while (my $t = $iter->next()) {
137151 my @strings = map { blessed($_) ? $_->ntriples_string : '' } map { $t->value($_) } @vars;
152 if ($self->number_rows) {
153 unshift(@strings, $row++);
154 }
138155 push(@rows, \@strings);
139156 }
140157 $table->load(@rows);