diff options
Diffstat (limited to 'lib/GitHub/Collector/Command/indegree.pm')
| -rw-r--r-- | lib/GitHub/Collector/Command/indegree.pm | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/GitHub/Collector/Command/indegree.pm b/lib/GitHub/Collector/Command/indegree.pm new file mode 100644 index 0000000..fe9bf78 --- /dev/null +++ b/lib/GitHub/Collector/Command/indegree.pm @@ -0,0 +1,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; |
