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