App-BitBucketCli

 view release on metacpan or  search on metacpan

lib/App/BitBucketCli/PullRequest.pm  view on Meta::CPAN

package App::BitBucketCli::PullRequest;

# Created on: 2015-09-16 16:41:19
# Create by:  Ivan Wills
# $Id$
# $Revision$, $HeadURL$, $Date$
# $Revision$, $Source$, $Date$

use Moo;
use warnings;
use Carp;
use Data::Dumper qw/Dumper/;
use English qw/ -no_match_vars /;

our $VERSION = 0.009;

extends qw/App::BitBucketCli::Base/;

has [qw/
    state
    toRef
    closed
    version
    attributes
    open
    fromRef
    updatedDate
    createdDate
    title
    reviewers
    participants
    author
/] => (
    is  => 'rw',
);

has emails => (
    is      => 'rw',
    builder => '_emails',
    lazy    => 1,
);

sub _emails {
    my $self = shift;
    my %emails;

    my %email;
    for my $users (qw/author participants reviewers/) {
        if ( !$self->$users ) {
            warn "No $users in " . $self->from_branch . "!\n";
            next;
        }

        for my $user (@{ ref $self->$users eq 'ARRAY' ? $self->{$users} : [$self->{$users}] }) {
            $emails{ $user->{user}{emailAddress} }++;
        }
    }

    return [ sort keys %emails ];
}

sub from_branch     { $_[0]->fromRef->{displayId}; }
sub to_branch       { $_[0]->toRef->{displayId}; }
sub from_repository { $_[0]->fromRef->{repository}{name}; }
sub to_repository   { $_[0]->toRef->{repository}{name}; }
sub from_project    { $_[0]->fromRef->{repository}{project}{name}; }
sub to_project      { $_[0]->toRef->{repository}{project}{name}; }
sub from_name {
    $_[0]->from_project
    . '/'
    . $_[0]->from_repository
    . '/'



( run in 0.554 second using v1.01-cache-2.11-cpan-39bf76dae61 )