API-Assembla

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

   },
   "name" : "API-Assembla",
   "prereqs" : {
      "configure" : {
         "requires" : {
            "ExtUtils::MakeMaker" : "6.30"
         }
      },
      "runtime" : {
         "requires" : {
            "DateTime::Format::ISO8601" : 0,
            "LWP::Protocol::https" : 0,
            "LWP::UserAgent" : 0,
            "Moose" : 0,
            "URI" : 0,
            "XML::XPath" : 0
         }
      },
      "test" : {
         "requires" : {
            "Test::More" : 0

META.yml  view on Meta::CPAN

configure_requires:
  ExtUtils::MakeMaker: 6.30
dynamic_config: 0
generated_by: 'Dist::Zilla version 4.200007, CPAN::Meta::Converter version 2.110440'
license: perl
meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
  version: 1.4
name: API-Assembla
requires:
  DateTime::Format::ISO8601: 0
  LWP::Protocol::https: 0
  LWP::UserAgent: 0
  Moose: 0
  URI: 0
  XML::XPath: 0
resources:
  repository: https://github.com/gphat/api-assembla
version: 0.03

Makefile.PL  view on Meta::CPAN

    'Test::More' => '0'
  },
  'CONFIGURE_REQUIRES' => {
    'ExtUtils::MakeMaker' => '6.30'
  },
  'DISTNAME' => 'API-Assembla',
  'EXE_FILES' => [],
  'LICENSE' => 'perl',
  'NAME' => 'API::Assembla',
  'PREREQ_PM' => {
    'DateTime::Format::ISO8601' => '0',
    'LWP::Protocol::https' => '0',
    'LWP::UserAgent' => '0',
    'Moose' => '0',
    'URI' => '0',
    'XML::XPath' => '0'
  },
  'VERSION' => '0.03',
  'test' => {
    'TESTS' => 't/*.t'
  }

lib/API/Assembla.pm  view on Meta::CPAN

package API::Assembla;
BEGIN {
  $API::Assembla::VERSION = '0.03';
}
use Moose;

use DateTime::Format::ISO8601;
use LWP::UserAgent;
use URI;
use XML::XPath;

use API::Assembla::Space;
use API::Assembla::Ticket;

# ABSTRACT: Access to Assembla API via Perl.


lib/API/Assembla.pm  view on Meta::CPAN


    # print STDERR $resp->decoded_content;

    my $xp = XML::XPath->new(xml => $resp->decoded_content);

    my $space = $xp->find('/space')->pop;
    my $name = $space->findvalue('name')."";

    return API::Assembla::Space->new(
        id => $space->findvalue('id').'',
        created_at => DateTime::Format::ISO8601->parse_datetime($space->findvalue('created-at').''),
        name => $name,
        description => $space->findvalue('description').'',
    );
}


sub get_spaces {
    my ($self) = @_;

    my $req = $self->make_req('/spaces/my_spaces');

lib/API/Assembla.pm  view on Meta::CPAN


    my $spaces = $xp->find('/spaces/space');

    my %objects = ();
    foreach my $space ($spaces->get_nodelist) {

        my $name = $space->findvalue('name')."";

        $objects{$name} = API::Assembla::Space->new(
            id => $space->findvalue('id').'',
            created_at => DateTime::Format::ISO8601->parse_datetime($space->findvalue('created-at').''),
            name => $name,
            description => $space->findvalue('description').'',
        );
    }

    return \%objects;
}


sub get_ticket {

lib/API/Assembla.pm  view on Meta::CPAN

    my $resp = $self->_client->request($req);

    # print STDERR $resp->decoded_content;

    my $xp = XML::XPath->new(xml => $resp->decoded_content);

    my $ticket = $xp->find('/ticket')->pop;

    return API::Assembla::Ticket->new(
        id => $ticket->findvalue('id').'',
        created_on => DateTime::Format::ISO8601->parse_datetime($ticket->findvalue('created-on').''),
        description => $ticket->findvalue('description').'',
        number => $ticket->findvalue('number').'',
        priority => $ticket->findvalue('priority').'',
        status_name => $ticket->findvalue('status-name').'',
        summary => $ticket->findvalue('summary').''
    );
}



lib/API/Assembla.pm  view on Meta::CPAN


    my $tickets = $xp->find('/tickets/ticket');

    my %objects = ();
    foreach my $ticket ($tickets->get_nodelist) {

        my $id = $ticket->findvalue('id').'';

        $objects{$id} = API::Assembla::Ticket->new(
            id => $id,
            created_on => DateTime::Format::ISO8601->parse_datetime($ticket->findvalue('created-on').''),
            description => $ticket->findvalue('description').'',
            number => $ticket->findvalue('number').'',
            priority => $ticket->findvalue('priority').'',
            status_name => $ticket->findvalue('status-name').'',
            summary => $ticket->findvalue('summary').''
        );
    }

    return \%objects;
}

lib/API/Assembla/Space.pm  view on Meta::CPAN

  $API::Assembla::Space::VERSION = '0.03';
}
use Moose;

# ABSTRACT: A Space in Assembla



has 'created_at' => (
    is => 'rw',
    isa => 'DateTime'
);


has 'description' => (
    is => 'rw',
    isa => 'Str'
);


has 'id' => (

lib/API/Assembla/Space.pm  view on Meta::CPAN

=head1 SYNOPSIS

=head1 DESCRIPTION

Assembla XXX

=head1 ATTRIBUTES

=head2 created_at

The DateTime representing the time at which this space was created.

=head2 description

The space's description

=head2 id

The space's id.

=head2 name

lib/API/Assembla/Ticket.pm  view on Meta::CPAN

  $API::Assembla::Ticket::VERSION = '0.03';
}
use Moose;

# ABSTRACT: A Ticket in Assembla.



has 'created_on' => (
    is => 'rw',
    isa => 'DateTime'
);


has 'description' => (
    is => 'rw',
    isa => 'Str'
);


has 'id' => (

lib/API/Assembla/Ticket.pm  view on Meta::CPAN

=head1 SYNOPSIS

=head1 DESCRIPTION

Assembla XXX

=head1 ATTRIBUTES

=head2 created_on

The DateTime representing the time at which this ticket was created.

=head2 description

The ticket's description

=head2 id

The ticket's id.

=head2 name



( run in 0.383 second using v1.01-cache-2.11-cpan-05444aca049 )