summaryrefslogtreecommitdiff
path: root/lib/GitHub/Collector/Command/indegree.pm
blob: fe9bf78b6d12e7620e06e2358d0a1f080484120b (plain) (blame)
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
package GitHub::Collector::Command::indegree;

use Moose;

extends qw(MooseX::App::Cmd::Command);

with qw(
  GitHub::Collector::Role::Context
  GitHub::Collector::Role::Logger
  GitHub::Collector::Role::MongoDB
);

sub execute {
    my $self = shift;

    my $edges = $self->db_edges->find();

    my $profiles = {};
    while ( my $edge = $edges->next ) {
        $profiles->{ $edge->{target} } += $edge->{weight};
    }

    foreach my $login ( keys %$profiles ) {
        $self->db_profiles->update( { login => $login },
            { '$set' => { indegree => $profiles->{$login} } } );
    }
}

1;