AnyEvent-WebService-Tracks

 view release on metacpan or  search on metacpan

lib/AnyEvent/WebService/Tracks/Todo.pm  view on Meta::CPAN

package AnyEvent::WebService::Tracks::Todo;

use strict;
use warnings;
use parent 'AnyEvent::WebService::Tracks::Resource';

use Carp qw(croak);
use Scalar::Util qw(looks_like_number);

use namespace::clean;

our $VERSION = '0.02';

__PACKAGE__->readonly(qw/completed_at created_at id recurring_todo_id updated_at/);
__PACKAGE__->accessor(qw/description due notes show_from/);

# here, but not actually accessible: context_id project_id state

sub resource_path {
    return 'todos';
}

sub xml_root {
    return 'todo';
}

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

    return $self->{'state'} eq 'completed';
}

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

    return $self->{'state'} eq 'active';
}

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

    return $self->{'state'} eq 'project_hidden';
}

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

    return $self->{'state'} eq 'deferred';
}

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

    $self->{'state'}           = 'completed';
    $self->{'_dirty'}{'state'} = 1;

    if(defined $self->{'show_from'}) {
        undef $self->{'show_from'};
        $self->{'_dirty'}{'show_from'} = 1;
    }
}

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

    $self->{'state'}           = 'active';
    $self->{'_dirty'}{'state'} = 1;



( run in 1.828 second using v1.01-cache-2.11-cpan-39bf76dae61 )