]> git.uio.no Git - usit-rt.git/blame - lib/RT/Squish.pm
Initial commit 4.0.5-3
[usit-rt.git] / lib / RT / Squish.pm
CommitLineData
84fb5b46
MKG
1# BEGIN BPS TAGGED BLOCK {{{
2#
3# COPYRIGHT:
4#
5# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
6# <sales@bestpractical.com>
7#
8# (Except where explicitly superseded by other copyright notices)
9#
10#
11# LICENSE:
12#
13# This work is made available to you under the terms of Version 2 of
14# the GNU General Public License. A copy of that license should have
15# been provided with this software, but in any event can be snarfed
16# from www.gnu.org.
17#
18# This work is distributed in the hope that it will be useful, but
19# WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21# General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with this program; if not, write to the Free Software
25# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26# 02110-1301 or visit their web page on the internet at
27# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28#
29#
30# CONTRIBUTION SUBMISSION POLICY:
31#
32# (The following paragraph is not intended to limit the rights granted
33# to you to modify and distribute this software under the terms of
34# the GNU General Public License and is only of importance to you if
35# you choose to contribute your changes and enhancements to the
36# community by submitting them to Best Practical Solutions, LLC.)
37#
38# By intentionally submitting any modifications, corrections or
39# derivatives to this work, or any other work intended for use with
40# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41# you are the copyright holder for those contributions and you grant
42# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43# royalty-free, perpetual, license to use, copy, create derivative
44# works based on those contributions, and sublicense and distribute
45# those contributions and any derivatives thereof.
46#
47# END BPS TAGGED BLOCK }}}
48
49=head1 SYNOPSIS
50
51=head1 DESCRIPTION
52
53base class of RT::Squish::JS and RT::Squish::CSS
54
55=head1 METHODS
56
57=cut
58
59use strict;
60use warnings;
61
62package RT::Squish;
63use base 'Class::Accessor::Fast';
64__PACKAGE__->mk_accessors(qw/Content Key ModifiedTime ModifiedTimeString/);
65
66use Digest::MD5 'md5_hex';
67use HTTP::Date;
68
69=head2 new (ARGS)
70
71ARGS is a hash of named parameters. Valid parameters are:
72
73 Name - name for this object
74
75=cut
76
77sub new {
78 my $class = shift;
79 my %args = @_;
80 my $self = \%args;
81 bless $self, $class;
82
83 my $content = $self->Squish;
84 $self->Content($content);
85 $self->Key( md5_hex $content );
86 $self->ModifiedTime( time() );
87 $self->ModifiedTimeString( HTTP::Date::time2str( $self->ModifiedTime ) );
88 return $self;
89}
90
91=head2 Squish
92
93virtual method which does nothing,
94you need to implement this method in subclasses.
95
96=cut
97
98sub Squish {
99 $RT::Logger->warn( "you need to implement this method in subclasses" );
100 return 1;
101}
102
103=head2 Content
104
105squished content
106
107=head2 Key
108
109md5 of the squished content
110
111=head2 ModifiedTime
112
113created time of squished content, i.e. seconds since 00:00:00 UTC, January 1, 1970
114
115=head2 ModifiedTimeString
116
117created time of squished content, with HTTP::Date format
118
119=cut
120
1211;
122