AI-TensorFlow-Libtensorflow
view release on metacpan or search on metacpan
maint/inc/Pod/Elemental/Transformer/TF_CAPI.pm view on Meta::CPAN
package Pod::Elemental::Transformer::TF_CAPI;
# ABSTRACT: Transformer for TF_CAPI links
use Moose;
use Pod::Elemental::Transformer 0.101620;
with 'Pod::Elemental::Transformer';
use Pod::Elemental::Element::Pod5::Command;
use namespace::autoclean;
has command_name => (
is => 'ro',
init_arg => undef,
);
sub transform_node {
my ($self, $node) = @_;
for my $i (reverse(0 .. $#{ $node->children })) {
my $para = $node->children->[ $i ];
next unless $self->__is_xformable($para);
my @replacements = $self->_expand( $para );
splice @{ $node->children }, $i, 1, @replacements;
}
}
my $command_dispatch = {
'tf_capi' => \&_expand_capi,
'tf_version' => \&_expand_version,
};
sub __is_xformable {
my ($self, $para) = @_;
return unless $para->isa('Pod::Elemental::Element::Pod5::Command')
and exists $command_dispatch->{ $para->command };
return 1;
}
sub _expand {
my ($self, $parent) = @_;
$command_dispatch->{ $parent->command }->( @_ );
};
sub _expand_version {
my ($self, $parent) = @_;
my @replacements;
my $content = $parent->content;
die "Not a version string: $content"
unless $content =~ /\A v [0-9.]+ \Z/x;
push @replacements, Pod::Elemental::Element::Pod5::Ordinary->new(
content => 'C<libtensorflow> version: ' . $content
);
return @replacements;
}
sub _expand_capi {
my ($self, $parent) = @_;
my @replacements;
my $content = $parent->content;
my @ids = split /,\s*/, $content;
( run in 0.562 second using v1.01-cache-2.11-cpan-39bf76dae61 )