[Jifty-commit] r7489 - jifty/trunk/lib/Jifty/Plugin

Jifty commits jifty-commit at lists.jifty.org
Tue Sep 15 22:44:52 EDT 2009


Author: sunnavy
Date: Tue Sep 15 22:44:51 2009
New Revision: 7489

Modified:
   jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm

Log:
add skipped_js for CompressedCSSandJS: some js does *not* work if compressed into /__jifty/....js

Modified: jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm
==============================================================================
--- jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm	(original)
+++ jifty/trunk/lib/Jifty/Plugin/CompressedCSSandJS.pm	Tue Sep 15 22:44:51 2009
@@ -22,6 +22,8 @@
         jsmin: /path/to/jsmin
         cdn: 'http://yourcdn.for.static.prefix/'
         gzip: 1
+        skipped_js:
+            - complex.js
 
 
 =head1 DESCRIPTION
@@ -41,9 +43,11 @@
 Jifty to transparently gzip css and js files as they're served if the client
 indicates it supports that feature.
 
+skipped_js is a list of js that you don't want to compress for some reason.
+
 =cut
 
-__PACKAGE__->mk_accessors(qw(css js jsmin cdn gzip_enabled));
+__PACKAGE__->mk_accessors(qw(css js jsmin cdn gzip_enabled skipped_js));
 
 =head2 init
 
@@ -109,9 +113,18 @@
     my $self = shift;
 
     $self->_generate_javascript;
-    Jifty->web->out( qq[<script type="text/javascript" src="@{[ $self->cdn ]}/__jifty/js/]
-            . Jifty::CAS->key('ccjs', 'js-all')
-            . qq[.js"></script>] );
+    Jifty->web->out(
+        qq[<script type="text/javascript" src="@{[ $self->cdn ]}/__jifty/js/]
+          . Jifty::CAS->key( 'ccjs', 'js-all' )
+          . qq[.js"></script>] );
+
+    my $skipped_js = $self->skipped_js;
+    if ( $self->skipped_js ) {
+        for my $file ( @{ $self->skipped_js } ) {
+            Jifty->web->out(
+                qq{<script type="text/javascript" src="/static/js/$file" /> });
+        }
+    }
     return 0;
 }
 
@@ -170,6 +183,7 @@
         my $js = "";
 
         for my $file ( @{ Jifty::Web->javascript_libs } ) {
+            next if $self->_js_is_skipped($file);
             my $include = $static_handler->file_path( File::Spec->catdir( 'js', $file ) );
 
             if ( defined $include ) {
@@ -254,5 +268,13 @@
     }
 }
 
+sub _js_is_skipped {
+    my $self       = shift;
+    my $file       = shift;
+    my $skipped_js = $self->skipped_js;
+    return unless $self->skipped_js;
+    return grep { $file eq $_ } @{ $self->skipped_js };
+}
+
 
 1;


More information about the Jifty-commit mailing list