[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.17 and 1.23

version 1.17, 2010/01/11 01:08:35 version 1.23, 2010/01/18 03:04:48
Line 1 
Line 1 
 package Text::Todo::Entry;  package Text::Todo::Entry;
   
 # $RedRiver: Entry.pm,v 1.16 2010/01/10 22:49:53 andrew Exp $  # $AFresh1: Entry.pm,v 1.22 2010/01/18 02:46:48 andrew Exp $
   
 use warnings;  use warnings;
 use strict;  use strict;
Line 12 
Line 12 
 use version; our $VERSION = qv('0.0.1');  use version; our $VERSION = qv('0.0.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 93 
Line 96 
             = $text =~ / $priority_completion_regex /xms;              = $text =~ / $priority_completion_regex /xms;
   
         $completion_status_of{$ident} = _clean_completed($completed);          $completion_status_of{$ident} = _clean_completed($completed);
         $priority_of{$ident} = $priority;          $priority_of{$ident}          = $priority;
   
         return 1;          return 1;
     }      }
Line 104 
Line 107 
         $completed ||= q{};          $completed ||= q{};
         $completed =~ s/^\s+|\s+$//gxms;          $completed =~ s/^\s+|\s+$//gxms;
   
         if (!$completed) {          if ( !$completed ) {
             return;              return;
         }          }
   
         if ($completed =~ s/(x)\s*//ixms) {          if ( $completed =~ s/(x)\s*//ixms ) {
             my $status = $1;              my $status = $1;
             if ($completed) {              if ($completed) {
                 return $completed;                  return $completed;
Line 172 
Line 175 
         $new =~ s/$priority_completion_regex//xms;          $new =~ s/$priority_completion_regex//xms;
   
         if ( $self->done ) {          if ( $self->done ) {
               if ( $self->done !~ /^x/ixms ) {
                   push @new, 'x';
               }
             push @new, $self->done;              push @new, $self->done;
         }          }
   
Line 201 
Line 207 
             return 1;              return 1;
         }          }
   
         $completion_status_of{$ident} = 'x';          $completion_status_of{$ident} = sprintf "%04d-%02d-%02d",
               ( (localtime)[5] + 1900 ),
               ( (localtime)[4] + 1 ),
               ( (localtime)[3] );
   
         return $self->prepend();          return $self->prepend();
     }      }
Line 213 
Line 222 
         return $completion_status_of{$ident};          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 386 
Line 402 
   
     $entry->do;      $entry->do;
   
 Does this by prepending an 'x' to the beginning of the entry.  Does this by prepending "x `date '%Y-%m-%d'`" to the beginning of the entry.
   
 =head2 done  =head2 done
   
 Returns true if an entry is marked complete and false if not.  Returns true if an entry is marked complete and false if not.
   
     if (!$entry->done) {      if (!my $status = $entry->done) {
         # remind me to do it          # remind me to do it
     }      }
   
   If the entry starts as 'x date', for example 'x 2010-01-01', $status is now
   '2010-01-01'.
   If the entry just starts with 'x', then $status will be 'x'.
   
 =head1 DIAGNOSTICS  =head1 DIAGNOSTICS
   

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.23

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