Github-Hooks-Receiver

 view release on metacpan or  search on metacpan

lib/Github/Hooks/Receiver/Declare.pm  view on Meta::CPAN

package Github::Hooks::Receiver::Declare;
use strict;
use warnings;

use Github::Hooks::Receiver;
use parent 'Exporter';

our @EXPORT = qw/receiver secret on/;

our $_RECEIVER;
sub receiver(&) {
    my $code = shift;
    local $_RECEIVER = Github::Hooks::Receiver->new;
    $code->();
    $_RECEIVER;
}

sub secret($) {
    die 'not in receiver block' unless $_RECEIVER;
    $_RECEIVER->{secret} = $_[0];
}

sub on($;$) {
    die 'not in receiver block' unless $_RECEIVER;
    $_RECEIVER->on(@_);
}

1;
__END__

=encoding utf-8

=head1 NAME

Github::Hooks::Receiver::Declare - DSL interface of Github::Hooks::Receiver

=head1 SYNOPSIS

    use Github::Hooks::Receiver::Declare;

    my $receiver = receiver {
        secret 'secret1234'; # secret is optional, but strongly RECOMMENDED!
        on push => sub {
            my ($event, $req) = @_;
            warn $event->event;
            my $payload = $event->payload;
        };
    };
    $receiver->to_app;

=head1 DESCRIPTION

Github::Hooks::Receiver provides DSL interface of L<Github::Hooks::Receiver>.

=head1 LICENSE

Copyright (C) Songmu.

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

=head1 AUTHOR

Songmu E<lt>y.songmu@gmail.comE<gt>

=cut



( run in 0.916 second using v1.01-cache-2.11-cpan-5b529ec07f3 )