more readable version of the init and new sub
Signed-off-by: Henri-Damien LAURENT <henridamien@koha-fr.org>
This commit is contained in:
parent
b9b2804fbc
commit
5a74b4fa0c
48
C4/Dates.pm
48
C4/Dates.pm
|
|
@ -111,27 +111,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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue