| version 1.18, 2010/01/11 01:30:24 | version 1.21, 2010/01/18 00:19:55 | 
|  |  | 
| 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.20 2010/01/12 20:09:02 andrew Exp $ | 
|  |  | 
| use warnings; | use warnings; | 
| use strict; | use strict; | 
| use Carp; | use Carp; | 
|  |  | 
| use Class::Std::Utils; | use Class::Std; | 
| use List::Util qw/ first /; | use List::Util qw/ first /; | 
|  |  | 
| use version; our $VERSION = qv('0.0.1'); | use version; our $VERSION = qv('0.0.1'); | 
|  |  | 
| { | { | 
| my %text_of; | my ( %text_of, %tags_of, %priority_of, %completion_status_of, | 
|  | %known_tags_of, ) : ATTR; | 
|  |  | 
| 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* | 
|  |  | 
| (?i:\( ([A-Z]) \)   \s*)? | (?i:\( ([A-Z]) \)   \s*)? | 
| }xms; | }xms; | 
|  |  | 
| sub new { | sub BUILD { | 
| my ( $class, $options ) = @_; | my ( $self, $ident, $options ) = @_; | 
|  |  | 
| my $self = bless anon_scalar(), $class; |  | 
| my $ident = ident($self); |  | 
|  |  | 
| if ( !ref $options ) { | if ( !ref $options ) { | 
| $options = { text => $options }; | $options = { text => $options }; | 
| } | } | 
|  |  | 
| $new =~ s/$priority_completion_regex//xms; | $new =~ s/$priority_completion_regex//xms; | 
|  |  | 
| if ( $self->done ) { | if ( $self->done ) { | 
| if ($self->done !~ /^x/ixms) { | if ( $self->done !~ /^x/ixms ) { | 
| push @new, 'x'; | push @new, 'x'; | 
| } | } | 
| push @new, $self->done; | push @new, $self->done; | 
|  |  | 
|  |  | 
| =head1 INTERFACE | =head1 INTERFACE | 
|  |  | 
| =head2 new | =head2 BUILD | 
|  |  | 
| Creates an entry that can be manipulated. | Creates an entry that can be manipulated. | 
|  |  |