[BACK]Return to Entry.pm CVS log [TXT][DIR] Up to [local] / todotxt / Text-Todo / lib / Text / Todo

Diff for /todotxt/Text-Todo/lib/Text/Todo/Entry.pm between version 1.22 and 1.27

version 1.22, 2010/01/18 02:46:48 version 1.27, 2010/02/13 23:06:34
Line 1 
Line 1 
 package Text::Todo::Entry;  package Text::Todo::Entry;
   
 # $AFresh1: Entry.pm,v 1.20 2010/01/12 20:09:02 andrew Exp $  # $AFresh1: Entry.pm,v 1.26 2010/01/22 01:30:45 andrew Exp $
   
 use warnings;  use warnings;
 use strict;  use strict;
 use Carp;  use Carp;
   
 use Class::Std::Utils;  use Class::Std::Utils;
 use List::Util qw/ first /;  
   
 use version; our $VERSION = qv('0.0.1');  use version; our $VERSION = qv('0.1.1');
   
 {  {
     my %text_of;  
   
     my %tags_of;      my @attr_refs = \(
     my %priority_of;          my %text_of,
     my %completion_status_of;  
     my %known_tags_of;  
   
           my %tags_of,
           my %priority_of,
           my %completion_status_of,
           my %known_tags_of,
       );
   
     # XXX Should the completion (x) be case sensitive?      # XXX Should the completion (x) be case sensitive?
     my $priority_completion_regex = qr{      my $priority_completion_regex = qr{
         ^ \s*          ^ \s*
Line 121 
Line 123 
         return;          return;
     }      }
   
       sub known_tags {
           my ( $self ) = @_;
           return $known_tags_of{ ident($self) };
       }
   
     sub _tags {      sub _tags {
         my ( $self, $tag ) = @_;          my ( $self, $tag ) = @_;
         my $ident = ident($self);          my $ident = ident($self);
Line 131 
Line 138 
   
     sub _is_in {      sub _is_in {
         my ( $self, $tags, $item ) = @_;          my ( $self, $tags, $item ) = @_;
         return defined first { $_ eq $item } $self->$tags;          foreach ($self->$tags) {
               return 1 if $_ eq $item;
           }
           return 0;
     }      }
   
     sub text {      sub text {
Line 214 
Line 224 
   
     sub done {      sub done {
         my ($self) = @_;          my ($self) = @_;
         my $ident = ident($self);          return $completion_status_of{ ident($self) };
   
         return $completion_status_of{$ident};  
     }      }
   
       sub DESTROY {
           my ($self) = @_;
           my $ident = ident $self;
           foreach my $attr_ref (@attr_refs) {
               delete $attr_ref->{$ident};
           }
       }
 }  }
 1;    # Magic true value required at end of module  1;    # Magic true value required at end of module
 __END__  __END__
Line 305 
Line 320 
   
 Each tag type generates two accessor functions {tag}s and in_{tag}.  Each tag type generates two accessor functions {tag}s and in_{tag}.
   
 Current tags are context (@) and project (+).  Default tags are context (@) and project (+).
   
 When creating a new object you can pass in new tags to recognize.  When creating a new object you can pass in new tags to recognize.
   
Line 316 
Line 331 
   
     my @due_dates = $entry->due_dates;      my @due_dates = $entry->due_dates;
   
 then @due_dates eq ( '2011-01-01' );  then @due_dates is ( '2011-01-01' );
   
 and you could also:  and you could also:
   
Line 326 
Line 341 
   
   
 =over  =over
   
   =item known_tags
   
       $known_tags = $entry->known_tags;
   
   $known_tags by default would be:
   
       { context => '@',
         project => '+',
       }
   
 =item {tag}s  =item {tag}s
   

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.27

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>