r49100 - in /trunk/libdatetime-format-natural-perl: ./ debian/ lib/DateTime/Format/ lib/DateTime/Format/Natural/ lib/DateTime/Format/Natural/Lang/ scripts/ t/

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Mon Dec 21 19:12:39 UTC 2009


Author: jawnsy-guest
Date: Mon Dec 21 19:12:30 2009
New Revision: 49100

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=49100
Log:
New upstream release

Modified:
    trunk/libdatetime-format-natural-perl/Changes
    trunk/libdatetime-format-natural-perl/META.yml
    trunk/libdatetime-format-natural-perl/debian/changelog
    trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural.pm
    trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Base.pm
    trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Compat.pm
    trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Lang/Base.pm
    trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Utils.pm
    trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Wrappers.pm
    trunk/libdatetime-format-natural-perl/scripts/dateparse
    trunk/libdatetime-format-natural-perl/t/04-parse_durations.t

Modified: trunk/libdatetime-format-natural-perl/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/Changes?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/Changes (original)
+++ trunk/libdatetime-format-natural-perl/Changes Mon Dec 21 19:12:30 2009
@@ -1,4 +1,37 @@
 Revision history for Perl extension DateTime::Format::Natural.
+
+0.82 Mon Dec 21 10:15:52 CET 2009
+
+ - Merged development version to stable.
+
+0.81_04 Wed Dec 16 13:32:35 CET 2009
+
+ - dateparse: use the same class instance for each parse run;
+   match case-insensitively for commands that quit.
+
+0.81_03 Fri Dec 11 10:32:08 CET 2009
+
+ - Use string interpolation instead of concatenation for symbolic
+   references in __new().
+
+0.81_02 Wed Dec  9 20:07:19 CET 2009
+
+ - Reduce the common logic of _valid_date() and _valid_time()
+   by moving most of it to a method.
+
+ - Store the daytime option internally with a less nested name.
+
+0.81_01 Mon Dec  7 11:14:19 CET 2009
+
+ - Place the common body of _add() and _subtract() in a single method.
+
+ - Comment the inverse use of _add() within _add_or_subtract().
+
+ - Set values at once within _check_time().
+
+ - Initialize tokens with an anonymous array reference.
+
+ - Purge last unneeded occurrence of 'scalar'.
 
 0.81 Sat Nov 21 12:59:17 CET 2009
 

Modified: trunk/libdatetime-format-natural-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/META.yml?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/META.yml (original)
+++ trunk/libdatetime-format-natural-perl/META.yml Mon Dec 21 19:12:30 2009
@@ -1,6 +1,6 @@
 ---
 name: DateTime-Format-Natural
-version: 0.81
+version: 0.82
 author:
   - 'Steven Schubiger <schubiger at cpan.org>'
 abstract: Create machine readable date/time with natural parsing logic
@@ -29,13 +29,13 @@
 provides:
   DateTime::Format::Natural:
     file: lib/DateTime/Format/Natural.pm
-    version: 0.81
+    version: 0.82
   DateTime::Format::Natural::Base:
     file: lib/DateTime/Format/Natural/Base.pm
-    version: 1.30
+    version: 1.31
   DateTime::Format::Natural::Compat:
     file: lib/DateTime/Format/Natural/Compat.pm
-    version: 0.05
+    version: 0.06
   DateTime::Format::Natural::Duration:
     file: lib/DateTime/Format/Natural/Duration.pm
     version: 0.03
@@ -44,7 +44,7 @@
     version: 0.04
   DateTime::Format::Natural::Lang::Base:
     file: lib/DateTime/Format/Natural/Lang/Base.pm
-    version: 1.02
+    version: 1.03
   DateTime::Format::Natural::Lang::EN:
     file: lib/DateTime/Format/Natural/Lang/EN.pm
     version: 1.28
@@ -53,10 +53,10 @@
     version: 0.04
   DateTime::Format::Natural::Utils:
     file: lib/DateTime/Format/Natural/Utils.pm
-    version: 0.01
+    version: 0.02
   DateTime::Format::Natural::Wrappers:
     file: lib/DateTime/Format/Natural/Wrappers.pm
-    version: 0.01
+    version: 0.02
 generated_by: Module::Build version 0.34
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html

Modified: trunk/libdatetime-format-natural-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/debian/changelog?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/debian/changelog (original)
+++ trunk/libdatetime-format-natural-perl/debian/changelog Mon Dec 21 19:12:30 2009
@@ -1,3 +1,9 @@
+libdatetime-format-natural-perl (0.82-1) UNRELEASED; urgency=low
+
+  * New upstream release
+
+ -- Jonathan Yu <jawnsy at cpan.org>  Mon, 21 Dec 2009 11:05:31 -0500
+
 libdatetime-format-natural-perl (0.81-1) unstable; urgency=low
 
   * New upstream release

Modified: trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural.pm?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural.pm (original)
+++ trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural.pm Mon Dec 21 19:12:30 2009
@@ -16,7 +16,7 @@
 use Scalar::Util qw(blessed);
 use Storable qw(dclone);
 
-our $VERSION = '0.81';
+our $VERSION = '0.82';
 
 validation_options(
     on_fail => sub
@@ -59,7 +59,7 @@
             $self->{ucfirst $opt} = $opts{$opt};
         }
     }
-    $self->{Opts}{daytime} = $opts{daytime};
+    $self->{Daytime} = $opts{daytime} || {};
 
     my $mod = __PACKAGE__.'::Lang::'.uc($self->{Lang});
     eval "use $mod"; die $@ if $@;
@@ -140,6 +140,8 @@
     my @count = $date_string =~ m![-./]!g;
     my %count; $count{$_}++ foreach @count;
 
+    $self->{tokens} = [];
+
     if (scalar keys %count == 1 && $count{(keys %count)[0]} == 2) {
         if ($date_string =~ /^\S+\b \s+ \b\S+/x) {
             ($date_string, @{$self->{tokens}}) = split /\s+/, $date_string;
@@ -210,7 +212,7 @@
 
         $self->_set_valid_exp;
 
-        if (@{$self->{tokens} || []}) {
+        if (@{$self->{tokens}}) {
             $self->{count}{tokens}--;
             $self->_unset_valid_exp;
             $self->_process;

Modified: trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Base.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Base.pm?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Base.pm (original)
+++ trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Base.pm Mon Dec 21 19:12:30 2009
@@ -8,7 +8,7 @@
     DateTime::Format::Natural::Wrappers
 );
 
-our $VERSION = '1.30';
+our $VERSION = '1.31';
 
 use constant MORNING   => '08';
 use constant AFTERNOON => '14';
@@ -75,8 +75,8 @@
         afternoon => AFTERNOON,
         evening   => EVENING,
     );
-    my $hour = $self->{Opts}{daytime}{$daytime}
-      ? $self->{Opts}{daytime}{$daytime}
+    my $hour = $self->{Daytime}{$daytime}
+      ? $self->{Daytime}{$daytime}
       : $daytimes{$daytime};
     if ($self->_valid_time(hour => $hour)) {
         $self->_set(

Modified: trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Compat.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Compat.pm?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Compat.pm (original)
+++ trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Compat.pm Mon Dec 21 19:12:30 2009
@@ -8,7 +8,7 @@
 
 our ($VERSION, $Pure);
 
-$VERSION = '0.05';
+$VERSION = '0.06';
 
 BEGIN
 {
@@ -144,9 +144,7 @@
         local $@;
         eval {
             my $dt = $self->{datetime}->clone;
-            $dt->set_hour($hour);
-            $dt->set_minute($minute);
-            $dt->set_second($second);
+            $dt->set(hour => $hour, minute => $minute, second => $second);
         };
         return !$@;
     }

Modified: trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Lang/Base.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Lang/Base.pm?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Lang/Base.pm (original)
+++ trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Lang/Base.pm Mon Dec 21 19:12:30 2009
@@ -5,7 +5,7 @@
 
 our ($VERSION, $AUTOLOAD);
 
-$VERSION = '1.02';
+$VERSION = '1.03';
 
 sub __new
 {
@@ -14,15 +14,15 @@
     no strict 'refs';
 
     my $obj = {};
-    $obj->{weekdays}        = \%{$class.'::'.'data_weekdays'};
-    $obj->{weekdays_abbrev} = \%{$class.'::'.'data_weekdays_abbrev'};
-    $obj->{weekdays_all}    = \@{$class.'::'.'data_weekdays_all'};
-    $obj->{months}          = \%{$class.'::'.'data_months'};
-    $obj->{months_abbrev}   = \%{$class.'::'.'data_months_abbrev'};
-    $obj->{months_all}      = \@{$class.'::'.'data_months_all'};
-    $obj->{conversion}      = \%{$class.'::'.'data_conversion'};
-    $obj->{helpers}         = \%{$class.'::'.'data_helpers'};
-    $obj->{duration}        = \%{$class.'::'.'data_duration'};
+    $obj->{weekdays}        = \%{"${class}::data_weekdays"};
+    $obj->{weekdays_abbrev} = \%{"${class}::data_weekdays_abbrev"};
+    $obj->{weekdays_all}    = \@{"${class}::data_weekdays_all"};
+    $obj->{months}          = \%{"${class}::data_months"};
+    $obj->{months_abbrev}   = \%{"${class}::data_months_abbrev"};
+    $obj->{months_all}      = \@{"${class}::data_months_all"};
+    $obj->{conversion}      = \%{"${class}::data_conversion"};
+    $obj->{helpers}         = \%{"${class}::data_helpers"};
+    $obj->{duration}        = \%{"${class}::data_duration"};
 
     return bless $obj, ref($class) || $class;
 }

Modified: trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Utils.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Utils.pm?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Utils.pm (original)
+++ trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Utils.pm Mon Dec 21 19:12:30 2009
@@ -4,51 +4,50 @@
 use warnings;
 use boolean qw(true false);
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 sub _valid_date
 {
     my $self = shift;
+    return $self->_valid(@_,
+        { units => [ qw(year month day) ],
+          error => '(date is not valid)',
+          type  => 'date',
+        },
+    );
+}
+
+sub _valid_time
+{
+    my $self = shift;
+    return $self->_valid(@_,
+        { units => [ qw(hour minute second) ],
+          error => '(time is not valid)',
+          type  => 'time',
+        },
+    );
+}
+
+sub _valid
+{
+    my $self = shift;
+    my $opts = pop;
     my %values = @_;
 
-    my %set = map { $_ => $self->{datetime}->$_ } qw(year month day);
+    my %set = map { $_ => $self->{datetime}->$_ } @{$opts->{units}};
 
     while (my ($unit, $value) = each %values) {
         $set{$unit} = $value;
     }
 
-    if ($self->_check_date($set{year}, $set{month}, $set{day})) {
+    my $checker = '_check' . "_$opts->{type}";
+
+    if ($self->$checker(map $set{$_}, @{$opts->{units}})) {
         return true;
     }
     else {
         $self->_set_failure;
-        $self->_set_error("(date is not valid)");
-        return false;
-    }
-}
-
-sub _valid_time
-{
-    my $self = shift;
-    my %values = @_;
-
-    my %abbrev = (
-        second => 'sec',
-        minute => 'min',
-        hour   => 'hour',
-    );
-    my %set = map { $_ => $self->{datetime}->$_ } values %abbrev;
-
-    while (my ($unit, $value) = each %values) {
-        $set{$abbrev{$unit}} = $value;
-    }
-
-    if ($self->_check_time($set{hour}, $set{min}, $set{sec})) {
-        return true;
-    }
-    else {
-        $self->_set_failure;
-        $self->_set_error("(time is not valid)");
+        $self->_set_error($opts->{error});
         return false;
     }
 }

Modified: trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Wrappers.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Wrappers.pm?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Wrappers.pm (original)
+++ trunk/libdatetime-format-natural-perl/lib/DateTime/Format/Natural/Wrappers.pm Mon Dec 21 19:12:30 2009
@@ -3,27 +3,30 @@
 use strict;
 use warnings;
 
-our $VERSION = '0.01';
+our $VERSION = '0.02';
 
 sub _add
 {
     my $self = shift;
-    my ($unit, $value) = @_;
-
-    $unit .= 's' unless $unit =~ /s$/;
-    $self->{datetime}->add($unit => $value);
-
-    chop $unit;
-    $self->{modified}{$unit}++;
+    $self->_math(@_);
 }
 
 sub _subtract
 {
     my $self = shift;
+    $self->_math(@_);
+}
+
+sub _math
+{
+    my $self = shift;
     my ($unit, $value) = @_;
 
+    my ($method) = (caller(1))[3] =~ /.*::(.*)$/;
+    $method =~ s/^_//;
+
     $unit .= 's' unless $unit =~ /s$/;
-    $self->{datetime}->subtract($unit => $value);
+    $self->{datetime}->$method($unit => $value);
 
     chop $unit;
     $self->{modified}{$unit}++;
@@ -43,6 +46,8 @@
         }
     }
     elsif (@_ == 2) {
+        # Handle additions as expected and also subtractions
+        # as the inverse result of adding a negative number.
         $self->_add(@_);
     }
 }

Modified: trunk/libdatetime-format-natural-perl/scripts/dateparse
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/scripts/dateparse?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/scripts/dateparse (original)
+++ trunk/libdatetime-format-natural-perl/scripts/dateparse Mon Dec 21 19:12:30 2009
@@ -98,12 +98,14 @@
         $lang = $args{lang} = LANG_DEFAULT;
     }
 
+    my $parser = DateTime::Format::Natural->new(%args);
+
     my $term = Term::ReadLine->new('dateparse');
     my $prompt = 'dateparse> ';
 
     while (defined(my $input = $term->readline($prompt))) {
         $term->addhistory($input) if $input =~ /\S/;
-        last if $input =~ /^(?:q(?:uit)?|exit)$/;
+        last if $input =~ /^(?:q(?:uit)?|exit)$/i;
 
         if ($input =~ /^(?:\?|help)$/i) {
             print <<EOT;
@@ -117,7 +119,6 @@
             next;
         }
 
-        my $parser = DateTime::Format::Natural->new(%args);
         my @dt = $parser->parse_datetime_duration(string => $input);
 
         if ($parser->success) {

Modified: trunk/libdatetime-format-natural-perl/t/04-parse_durations.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdatetime-format-natural-perl/t/04-parse_durations.t?rev=49100&op=diff
==============================================================================
--- trunk/libdatetime-format-natural-perl/t/04-parse_durations.t (original)
+++ trunk/libdatetime-format-natural-perl/t/04-parse_durations.t Mon Dec 21 19:12:30 2009
@@ -57,7 +57,7 @@
         $pass &= _result_string($dt[$i]) eq $result->[$i];
     }
 
-    if ($parser->success && $pass && scalar @dt == 2) {
+    if ($parser->success && $pass && @dt == 2) {
         ok($pass, _message($string));
     }
     else {




More information about the Pkg-perl-cvs-commits mailing list