| WWW-Ohloh-API documentation | Contained in the WWW-Ohloh-API distribution. |
WWW::Ohloh::API::ActivityFacts - an Ohloh project's set of activity facts
use WWW::Ohloh::API;
my $ohloh = WWW::Ohloh::API->new( api_key => $my_api_key );
my $project = $ohloh->get_project( $project_id );
my $facts = $ohloh->activity_facts;
print "number of facts for the project: ", $facts->total;
W::O::A::ActivityFacts gathers all the activity facts known
about a project.
To be properly populated, it must be retrieved via
the get_activity_facts method of a WWW::Ohloh::API object,
or the activity_facts() method of a WWW::Ohloh::API::Project
object.
Return the retrieved activity facts as a list of WWW::Ohloh::API::ActivityFact objects.
Example:
# sum the overall number of commits for the project
my $commits;
for my $fact ( $facts->all ) {
$commits += $fact->commits;
}
Return the activity facts as an XML string. Note that this is not the exact xml document as returned by the Ohloh server.
WWW::Ohloh::API, WWW::Ohloh::API::ActivityFact, WWW::Ohloh::API::Language, WWW::Ohloh::API::Project, WWW::Ohloh::API::Analysis, WWW::Ohloh::API::Account.
Ohloh API reference: http://www.ohloh.net/api/getting_started
Ohloh Account API reference: http://www.ohloh.net/api/reference/activity_fact
This document describes WWW::Ohloh::API version 0.3.1
WWW::Ohloh::API is very extremely alpha quality. It'll improve, but till then: Caveat emptor.
Please report any bugs or feature requests to
bug-www-ohloh-api@rt.cpan.org, or through the web interface at
http://rt.cpan.org.
Yanick Champoux <yanick@cpan.org>
Copyright (c) 2008, Yanick Champoux <yanick@cpan.org>. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
| WWW-Ohloh-API documentation | Contained in the WWW-Ohloh-API distribution. |
package WWW::Ohloh::API::ActivityFacts; use strict; use warnings; use Carp; use Object::InsideOut; use XML::LibXML; use Readonly; use List::MoreUtils qw/ any /; use WWW::Ohloh::API::ActivityFact; our $VERSION = '0.3.1'; my @ohloh_of : Field : Arg(ohloh); my @project_of : Field : Arg(project); my @analysis_of : Field : Arg(analysis); my @facts_of : Field; #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub _init : Init { my $self = shift; my ( $url, $xml ) = $ohloh_of[$$self] ->_query_server( "projects/$project_of[ $$self ]/analyses/" . "$analysis_of[ $$self ]/activity_facts.xml" ); $facts_of[$$self] = [ map { WWW::Ohloh::API::ActivityFact->new( xml => $_ ) } $xml->findnodes('activity_fact') ]; return; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub as_xml { my $self = shift; my $xml; my $w = XML::Writer->new( OUTPUT => \$xml ); $w->startTag('activity_facts'); $xml .= $_->as_xml for @{ $facts_of[$$self] }; $w->endTag; return $xml; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub all { my $self = shift; return @{ $facts_of[$$self] }; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub latest { my $self = shift; return $facts_of[$$self][-1]; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub total { my $self = shift; return scalar @{ $facts_of[$$self] }; } 'end of WWW::Ohloh::API::ActivityFacts'; __END__