summaryrefslogtreecommitdiff
path: root/lib/Template/Plugin/Date.pm
diff options
context:
space:
mode:
authorAndreas Brachold <vdr07@deltab.de>2007-11-11 06:55:13 +0000
committerAndreas Brachold <vdr07@deltab.de>2007-11-11 06:55:13 +0000
commit3282be229999dc36c197b264d63063a18d136331 (patch)
tree98a42db29d955b39e7bed1b599fdcc56c3a29de9 /lib/Template/Plugin/Date.pm
parentcfdd733c17cfa4f1a43b827a656e9e53cc2524ac (diff)
downloadxxv-3282be229999dc36c197b264d63063a18d136331.tar.gz
xxv-3282be229999dc36c197b264d63063a18d136331.tar.bz2
* Update installation list with required modules
* Remove unused/doubled provided external perl moduls
Diffstat (limited to 'lib/Template/Plugin/Date.pm')
-rw-r--r--lib/Template/Plugin/Date.pm361
1 files changed, 0 insertions, 361 deletions
diff --git a/lib/Template/Plugin/Date.pm b/lib/Template/Plugin/Date.pm
deleted file mode 100644
index 7351686..0000000
--- a/lib/Template/Plugin/Date.pm
+++ /dev/null
@@ -1,361 +0,0 @@
-#============================================================= -*-Perl-*-
-#
-# Template::Plugin::Date
-#
-# DESCRIPTION
-#
-# Plugin to generate formatted date strings.
-#
-# AUTHORS
-# Thierry-Michel Barral <kktos@electron-libre.com>
-# Andy Wardley <abw@cre.canon.co.uk>
-#
-# COPYRIGHT
-# Copyright (C) 2000 Thierry-Michel Barral, Andy Wardley.
-#
-# This module is free software; you can redistribute it and/or
-# modify it under the same terms as Perl itself.
-#
-#----------------------------------------------------------------------------
-#
-# $Id: Date.pm,v 2.71 2004/01/13 16:20:38 abw Exp $
-#
-#============================================================================
-
-package Template::Plugin::Date;
-
-use strict;
-use vars qw( $VERSION $FORMAT @LOCALE_SUFFIX );
-use base qw( Template::Plugin );
-use Template::Plugin;
-
-use POSIX ();
-
-$VERSION = sprintf("%d.%02d", q$Revision: 2.71 $ =~ /(\d+)\.(\d+)/);
-$FORMAT = '%H:%M:%S %d-%b-%Y'; # default strftime() format
-@LOCALE_SUFFIX = qw( .ISO8859-1 .ISO_8859-15 .US-ASCII .UTF-8 );
-
-#------------------------------------------------------------------------
-# new(\%options)
-#------------------------------------------------------------------------
-
-sub new {
- my ($class, $context, $params) = @_;
- bless {
- $params ? %$params : ()
- }, $class;
-}
-
-
-#------------------------------------------------------------------------
-# now()
-#
-# Call time() to return the current system time in seconds since the epoch.
-#------------------------------------------------------------------------
-
-sub now {
- return time();
-}
-
-
-#------------------------------------------------------------------------
-# format()
-# format($time)
-# format($time, $format)
-# format($time, $format, $locale)
-# format($time, $format, $locale, $gmt_flag)
-# format(\%named_params);
-#
-# Returns a formatted time/date string for the specified time, $time,
-# (or the current system time if unspecified) using the $format, $locale,
-# and $gmt values specified as arguments or internal values set defined
-# at construction time). Specifying a Perl-true value for $gmt will
-# override the local time zone and force the output to be for GMT.
-# Any or all of the arguments may be specified as named parameters which
-# get passed as a hash array reference as the final argument.
-# ------------------------------------------------------------------------
-
-sub format {
- my $self = shift;
- my $params = ref($_[$#_]) eq 'HASH' ? pop(@_) : { };
- my $time = shift(@_) || $params->{ time } || $self->{ time }
- || $self->now();
- my $format = @_ ? shift(@_)
- : ($params->{ format } || $self->{ format } || $FORMAT);
- my $locale = @_ ? shift(@_)
- : ($params->{ locale } || $self->{ locale });
- my $gmt = @_ ? shift(@_)
- : ($params->{ gmt } || $self->{ gmt });
- my (@date, $datestr);
-
- if ($time =~ /^\d+$/) {
- # $time is now in seconds since epoch
- if ($gmt) {
- @date = (gmtime($time))[0..6];
- }
- else {
- @date = (localtime($time))[0..6];
- }
- }
- else {
- # if $time is numeric, then we assume it's seconds since the epoch
- # otherwise, we try to parse it as a 'H:M:S D:M:Y' string
- @date = (split(/(?:\/| |:|-)/, $time))[2,1,0,3..5];
- return (undef, Template::Exception->new('date',
- "bad time/date string: expects 'h:m:s d:m:y' got: '$time'"))
- unless @date >= 6 && defined $date[5];
- $date[4] -= 1; # correct month number 1-12 to range 0-11
- $date[5] -= 1900; # convert absolute year to years since 1900
- $time = &POSIX::mktime(@date);
- }
-
- if ($locale) {
- # format the date in a specific locale, saving and subsequently
- # restoring the current locale.
- my $old_locale = &POSIX::setlocale(&POSIX::LC_ALL);
-
- # some systems expect locales to have a particular suffix
- for my $suffix ('', @LOCALE_SUFFIX) {
- my $try_locale = $locale.$suffix;
- my $setlocale = &POSIX::setlocale(&POSIX::LC_ALL, $try_locale);
- if (defined $setlocale && $try_locale eq $setlocale) {
- $locale = $try_locale;
- last;
- }
- }
- $datestr = &POSIX::strftime($format, @date);
- &POSIX::setlocale(&POSIX::LC_ALL, $old_locale);
- }
- else {
- $datestr = &POSIX::strftime($format, @date);
- }
-
- return $datestr;
-}
-
-sub calc {
- my $self = shift;
- eval { require "Date/Calc.pm" };
- $self->throw("failed to load Date::Calc: $@") if $@;
- return Template::Plugin::Date::Calc->new('no context');
-}
-
-sub manip {
- my $self = shift;
- eval { require "Date/Manip.pm" };
- $self->throw("failed to load Date::Manip: $@") if $@;
- return Template::Plugin::Date::Manip->new('no context');
-}
-
-
-sub throw {
- my $self = shift;
- die (Template::Exception->new('date', join(', ', @_)));
-}
-
-
-package Template::Plugin::Date::Calc;
-use base qw( Template::Plugin );
-use vars qw( $AUTOLOAD );
-*throw = \&Template::Plugin::Date::throw;
-
-sub AUTOLOAD {
- my $self = shift;
- my $method = $AUTOLOAD;
-
- $method =~ s/.*:://;
- return if $method eq 'DESTROY';
-
- my $sub = \&{"Date::Calc::$method"};
- $self->throw("no such Date::Calc method: $method")
- unless $sub;
-
- &$sub(@_);
-}
-
-package Template::Plugin::Date::Manip;
-use base qw( Template::Plugin );
-use vars qw( $AUTOLOAD );
-*throw = \&Template::Plugin::Date::throw;
-
-sub AUTOLOAD {
- my $self = shift;
- my $method = $AUTOLOAD;
-
- $method =~ s/.*:://;
- return if $method eq 'DESTROY';
-
- my $sub = \&{"Date::Manip::$method"};
- $self->throw("no such Date::Manip method: $method")
- unless $sub;
-
- &$sub(@_);
-}
-
-
-1;
-
-__END__
-
-
-#------------------------------------------------------------------------
-# IMPORTANT NOTE
-# This documentation is generated automatically from source
-# templates. Any changes you make here may be lost.
-#
-# The 'docsrc' documentation source bundle is available for download
-# from http://www.template-toolkit.org/docs.html and contains all
-# the source templates, XML files, scripts, etc., from which the
-# documentation for the Template Toolkit is built.
-#------------------------------------------------------------------------
-
-=head1 NAME
-
-Template::Plugin::Date - Plugin to generate formatted date strings
-
-=head1 SYNOPSIS
-
- [% USE date %]
-
- # use current time and default format
- [% date.format %]
-
- # specify time as seconds since epoch or 'h:m:s d-m-y' string
- [% date.format(960973980) %]
- [% date.format('4:20:36 21/12/2000') %]
-
- # specify format
- [% date.format(mytime, '%H:%M:%S') %]
-
- # specify locale
- [% date.format(date.now, '%a %d %b %y', 'en_GB') %]
-
- # named parameters
- [% date.format(mytime, format = '%H:%M:%S') %]
- [% date.format(locale = 'en_GB') %]
- [% date.format(time = date.now,
- format = '%H:%M:%S',
- locale = 'en_GB) %]
-
- # specify default format to plugin
- [% USE date(format = '%H:%M:%S', locale = 'de_DE') %]
-
- [% date.format %]
- ...
-
-=head1 DESCRIPTION
-
-The Date plugin provides an easy way to generate formatted time and date
-strings by delegating to the POSIX strftime() routine.
-
-The plugin can be loaded via the familiar USE directive.
-
- [% USE date %]
-
-This creates a plugin object with the default name of 'date'. An alternate
-name can be specified as such:
-
- [% USE myname = date %]
-
-The plugin provides the format() method which accepts a time value, a
-format string and a locale name. All of these parameters are optional
-with the current system time, default format ('%H:%M:%S %d-%b-%Y') and
-current locale being used respectively, if undefined. Default values
-for the time, format and/or locale may be specified as named parameters
-in the USE directive.
-
- [% USE date(format = '%a %d-%b-%Y', locale = 'fr_FR') %]
-
-When called without any parameters, the format() method returns a string
-representing the current system time, formatted by strftime() according
-to the default format and for the default locale (which may not be the
-current one, if locale is set in the USE directive).
-
- [% date.format %]
-
-The plugin allows a time/date to be specified as seconds since the epoch,
-as is returned by time().
-
- File last modified: [% date.format(filemod_time) %]
-
-The time/date can also be specified as a string of the form 'h:m:s d/m/y'.
-Any of the characters : / - or space may be used to delimit fields.
-
- [% USE day = date(format => '%A', locale => 'en_GB') %]
- [% day.format('4:20:00 9-13-2000') %]
-
-Output:
-
- Tuesday
-
-A format string can also be passed to the format() method, and a locale
-specification may follow that.
-
- [% date.format(filemod, '%d-%b-%Y') %]
- [% date.format(filemod, '%d-%b-%Y', 'en_GB') %]
-
-A fourth parameter allows you to force output in GMT, in the case of
-seconds-since-the-epoch input:
-
- [% date.format(filemod, '%d-%b-%Y', 'en_GB', 1) %]
-
-Note that in this case, if the local time is not GMT, then also specifying
-'%Z' (time zone) in the format parameter will lead to an extremely
-misleading result.
-
-Any or all of these parameters may be named. Positional parameters
-should always be in the order ($time, $format, $locale).
-
- [% date.format(format => '%H:%M:%S') %]
- [% date.format(time => filemod, format => '%H:%M:%S') %]
- [% date.format(mytime, format => '%H:%M:%S') %]
- [% date.format(mytime, format => '%H:%M:%S', locale => 'fr_FR') %]
- [% date.format(mytime, format => '%H:%M:%S', gmt => 1) %]
- ...etc...
-
-The now() method returns the current system time in seconds since the
-epoch.
-
- [% date.format(date.now, '%A') %]
-
-The calc() method can be used to create an interface to the Date::Calc
-module (if installed on your system).
-
- [% calc = date.calc %]
- [% calc.Monday_of_Week(22, 2001).join('/') %]
-
-The manip() method can be used to create an interface to the Date::Manip
-module (if installed on your system).
-
- [% manip = date.manip %]
- [% manip.UnixDate("Noon Yesterday","%Y %b %d %H:%M") %]
-
-=head1 AUTHORS
-
-Thierry-Michel Barral E<lt>kktos@electron-libre.comE<gt> wrote the original
-plugin.
-
-Andy Wardley E<lt>abw@cre.canon.co.ukE<gt> provided some minor
-fixups/enhancements, a test script and documentation.
-
-Mark D. Mills E<lt>mark@hostile.orgE<gt> cloned Date::Manip from the
-cute Date::Calc sub-plugin.
-
-=head1 VERSION
-
-2.71, distributed as part of the
-Template Toolkit version 2.13, released on 30 January 2004.
-
-
-
-=head1 COPYRIGHT
-
-Copyright (C) 2000 Thierry-Michel Barral, Andy Wardley.
-
-This module is free software; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-=head1 SEE ALSO
-
-L<Template::Plugin|Template::Plugin>, L<POSIX|POSIX>
-