[Koha-patches] [PATCH] more readable version of the init and new sub
Marc Chantreux
marc.chantreux at biblibre.com
Fri Jan 16 00:18:06 CET 2009
---
C4/Dates.pm | 48 ++++++++++++++++++++++++++++++------------------
1 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/C4/Dates.pm b/C4/Dates.pm
index 7563b51..6c753a3 100644
--- a/C4/Dates.pm
+++ b/C4/Dates.pm
@@ -116,27 +116,39 @@ sub _chron_to_hms {
}
sub new {
- my $this = shift;
- my $class = ref($this) || $this;
- my $self = {};
- bless $self, $class;
- return $self->init(@_);
+ shift; # as clone isn't implemented, we don't carre about package name
+ my $self = bless {}, __PACKAGE__;
+ $self->init(@_)
}
+
sub init ($;$$) {
- my $self = shift;
- my $dformat;
- $self->{'dateformat'} = $dformat = (scalar(@_) >= 2) ? $_[1] : _prefformat();
- ($format_map{$dformat}) or croak
- "Invalid date format '$dformat' from " . ((scalar(@_) >= 2) ? 'argument' : 'system preferences');
- $self->{'dmy_arrayref'} = [((@_) ? $self->dmy_map(shift) : localtime )] ;
- $debug and warn "(during init) \@\$self->{'dmy_arrayref'}: " . join(' ',@{$self->{'dmy_arrayref'}}) . "\n";
- return $self;
-}
-sub output ($;$) {
- my $self = shift;
- my $newformat = (@_) ? _recognize_format(shift) : _prefformat();
- return (eval {POSIX::strftime($posix_map{$newformat}, @{$self->{'dmy_arrayref'}})} || undef);
+ my ($self,$string_date,$dformat) = @_;
+
+ my $from;
+ if ( $dformat ) {
+ $from = 'argument';
+ } else {
+ $from = 'system preferences';
+ $dformat = _prefformat;
+ }
+
+ $self->{'dateformat'} = $dformat;
+ $format_map{$dformat} or croak "Invalid date format '$dformat' from $from";
+
+ $self->{'dmy_arrayref'} = $string_date
+ ? $self->dmy_map($string_date)
+ : localtime
+ ;
+
+ $debug and warn
+ q[(during init) @$self->{'dmy_arrayref'}:]
+ , join(' ',@{$self->{'dmy_arrayref'}})
+ , "\n"
+ ;
+
+ return $self;
}
+
sub today ($;$) { # NOTE: sets date value to today (and returns it in the requested or current format)
my $class = shift;
$class = ref($class) || $class;
--
1.5.6.5
More information about the Koha-patches
mailing list