File: SocketWrapperRole.pm

package info (click to toggle)
libzmq-ffi-perl 1.17-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 504 kB
  • sloc: perl: 4,317; sh: 92; ansic: 30; makefile: 27
file content (58 lines) | stat: -rw-r--r-- 964 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package inc::SocketWrapperRole;

use Moo::Role;
use namespace::clean;

use Path::Class qw(file);

use ZMQ::FFI::SocketRole;

my @socket_methods = @{$Moo::Role::INFO{'ZMQ::FFI::SocketRole'}->{requires}};

requires $_."_tt" for @socket_methods;

has zmqver => (
    is       => 'ro',
    required => 1,
);

has api_methods => (
    is      => 'ro',
    default => sub { \@socket_methods },
);

has template => (
    is      => 'ro',
    default => sub { file('inc/ZmqSocket.pm.tt') },
);

has target => (
    is => 'lazy',
);

has lib_imports => (
    is  => 'ro',
    default => '',
);

sub _build_target {
    my ($self) = @_;

    my $zmqver = $self->zmqver;
    return file("lib/ZMQ/FFI/$zmqver/Socket.pm"),
}

sub wrappers {
    my ($self) = @_;

    my %wrappers;

    for my $socket_method (@socket_methods) {
        my $template_method = $socket_method."_tt";
        $wrappers{$socket_method} = $self->$template_method;
    }

    return \%wrappers;
}

1;