| WWW-Ohloh-API documentation | Contained in the WWW-Ohloh-API distribution. |
WWW::Ohloh::API::Message - a Ohloh message
use WWW::Ohloh::API;
my $ohloh = WWW::Ohloh::API->new( api_key => $my_api_key );
my $messages = $ohloh->fetch_messages( account => $id );
while( my $msg = $messages->next ) {
print $msg->body, "\n";
}
W::O::A::Message contains the information associated with an Ohloh message.
Returns the message's id.
Returns the author of the message (as a string).
Returns (if available) the url pointing to the message author's avatar.
Returns the time at which the message has been written.
Returns the body of the message.
Return the message's information 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::Messages, WWW::Ohloh::API::Message::Tag.
Ohloh API reference: http://www.ohloh.net/api/getting_started
Ohloh Account API reference: http://www.ohloh.net/api/reference/message
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.
The as_xml() method returns a re-encoding of the account data, which
can differ of the original xml document sent by the Ohloh server.
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::Message; use strict; use warnings; use Carp; use Object::InsideOut; use XML::LibXML; use WWW::Ohloh::API::Message::Tag; our $VERSION = '0.3.1'; my @request_url_of : Field : Arg(request_url) : Get( request_url ); my @ohloh_of : Field : Arg(ohloh); my @api_fields = qw/ id account avatar created_at body /; my @id_of : Field : Set(_set_id) : Get(id); my @account_of : Field : Set(_set_account) : Get(account); my @avatar_of : Field : Set(_set_avatar) : Get(avatar); my @creation_time_of : Field : Set(_set_creation_time) : Get(creation_time); my @body_of : Field : Set(_set_body) : Get(body); my @tags_of : Field; my %init_args : InitArgs = ( 'xml' => '', ); sub _init : Init { my ( $self, $args ) = @_; $self->load_xml( $args->{xml} ) if $args->{xml}; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub load_xml { my $self = shift; my $dom = shift; $self->_set_id( $dom->findvalue("id/text()") ); $self->_set_account( $dom->findvalue("account/text()") ); $self->_set_avatar( $dom->findvalue('avatar/@uri') ); $self->_set_creation_time( $dom->findvalue("created_at/text()") ); $self->_set_body( $dom->findvalue("body/text()") ); for ( $dom->findnodes('tags/*') ) { $self->insert_tag( WWW::Ohloh::API::Message::Tag->new( ohloh => $ohloh_of[$$self], xml => $_, ) ); } } sub tags { my $self = shift; return $tags_of[$$self] ? @{ $tags_of[$$self] } : (); } sub insert_tag { my $self = shift; push @{ $tags_of[$$self] }, @_; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub as_xml { my $self = shift; my $xml; my $w = XML::Writer->new( OUTPUT => \$xml ); $w->startTag('language'); for my $e (@api_fields) { $w->dataElement( $e => $self->$e ); } $w->endTag; return $xml; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub is_code { my $self = shift; return $self->category eq 'code'; } #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sub is_markup { my $self = shift; return $self->category eq 'markup'; } 'end of WWW::Ohloh::API::Language'; __END__