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

Diff for /todotxt/Text-Todo/lib/Text/Todo.pm between version 1.24 and 1.25

version 1.24, 2010/01/22 18:15:06 version 1.25, 2010/02/13 23:26:44
Line 1 
Line 1 
 package Text::Todo;  package Text::Todo;
   
 # $AFresh1: Todo.pm,v 1.23 2010/01/22 01:30:45 andrew Exp $  # $AFresh1: Todo.pm,v 1.24 2010/01/22 18:15:06 andrew Exp $
   
 use warnings;  use warnings;
 use strict;  use strict;
Line 19 
Line 19 
   
         my %list_of,          my %list_of,
         my %loaded_of,          my %loaded_of,
           my %known_tags_of,
     );      );
   
     sub new {      sub new {
Line 33 
Line 34 
             done_file => undef,              done_file => undef,
         };          };
   
           $known_tags_of{$ident} = {
               context => '@',
               project => '+',
           };
   
         if ($options) {          if ($options) {
             if ( ref $options eq 'HASH' ) {              if ( ref $options eq 'HASH' ) {
                 foreach my $opt ( keys %{$options} ) {                  foreach my $opt ( keys %{$options} ) {
                     if ( exists $path_of{$ident}{$opt} ) {                      if ( exists $path_of{$ident}{$opt} ) {
                         $self->_path_to( $opt, $options->{$opt} );                          $self->_path_to( $opt, $options->{$opt} );
                     }                      }
                       elsif ( $opt eq 'tags' ) {
                           foreach my $tag ( keys %{ $options->{$opt} } ) {
                               $known_tags_of{$ident}{$tag}
                                   = $options->{$opt}{$tag};
                           }
                       }
                     else {                      else {
   
                         #carp "Invalid option [$opt]";                          #carp "Invalid option [$opt]";
Line 223 
Line 235 
         my $ident = ident($self);          my $ident = ident($self);
   
         if ( !ref $entry ) {          if ( !ref $entry ) {
             $entry = Text::Todo::Entry->new($entry);              $entry = Text::Todo::Entry->new(
                   {   text => $entry,
                       tags => $self->_known_tags,
                   }
               );
         }          }
         elsif ( ref $entry ne 'Text::Todo::Entry' ) {          elsif ( ref $entry ne 'Text::Todo::Entry' ) {
             croak(              croak(
Line 290 
Line 306 
         return wantarray ? @tags : \@tags;          return wantarray ? @tags : \@tags;
     }      }
   
       sub _known_tags {
           my ($self) = @_;
           my $ident = ident($self);
   
           my @list = $self->list;
   
           foreach my $e (@list) {
               my $kt = $e->known_tags;
               foreach my $t ( keys %{$kt} ) {
                   if ( !exists $known_tags_of{$ident}{$t} ) {
                       $known_tags_of{$ident}{$t} = $kt->{$t};
                   }
               }
           }
   
           return $known_tags_of{$ident};
       }
   
       sub listtags {
           my ($self) = @_;
           my $ident = ident($self);
   
           my @list = sort keys %{ $self->_known_tags };
   
           return wantarray ? @list : \@list;
       }
   
     sub archive {      sub archive {
         my ($self) = @_;          my ($self) = @_;
         my $ident = ident($self);          my $ident = ident($self);
Line 523 
Line 566 
   
 I think it may become depreciated unless there is demand.  I think it may become depreciated unless there is demand.
   
 =head2 listtag  =head2 listtags
   
   Returns a list of the tags known to the list.
   
   =head2 listtag($tag)
   
 Returns tags found in the list sorted by name.  Returns tags found in the list sorted by name.
   

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

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