compressed-gzipped-assets 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{compressed-gzipped-assets}
8
- s.version = "0.0.2"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ryan Shaw"]
12
- s.date = %q{2010-01-25}
12
+ s.date = %q{2010-01-26}
13
13
  s.description = %q{for more info see the readme.}
14
14
  s.email = %q{ryankshaw@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -9,16 +9,6 @@ raise "GoogleClosureCompiler only Supports Rails >= 2.1.x" unless Rails.version
9
9
  # Supports Rails >= 2.1.x
10
10
  module ActionView::Helpers::AssetTagHelper
11
11
  private
12
- def join_asset_file_contents_with_compilation(files)
13
- content = join_asset_file_contents_without_compilation(files)
14
- if !files.grep(%r[/javascripts]).empty?
15
- content = AssetCompressorWithGoogleClosureOrYUI.javascript_compressor.compress(content)
16
- elsif !files.grep(%r[/stylesheets]).empty?
17
- content = AssetCompressorWithGoogleClosureOrYUI.css_compressor.compress(content)
18
- end
19
- content
20
- end
21
- alias_method_chain :join_asset_file_contents, :compilation
22
12
 
23
13
  # this helps the NginxHttpGzipStaticModule do it's thing.
24
14
  # from it's website:
@@ -31,12 +21,31 @@ private
31
21
  contents = join_asset_file_contents(asset_paths)
32
22
  File.open(joined_asset_path, "w+") { |cache| cache.write(contents) }
33
23
 
34
- zip_name = "#{joined_asset_path}.gz"
35
- Zlib::GzipWriter.open(zip_name, Zlib::BEST_COMPRESSION) {|f| f.write(contents) }
24
+ mt = asset_paths.map { |p| File.mtime(asset_file_path(p)) }.max
36
25
  # Set mtime to the latest of the combined files to allow for
37
26
  # consistent ETag without a shared filesystem.
38
- mt = asset_paths.map { |p| File.mtime(asset_file_path(p)) }.max
39
- File.utime(mt, mt, joined_asset_path, zip_name)
27
+ File.utime(mt, mt, joined_asset_path)
28
+
29
+ # ok, now that we have created the dum concatenation of the files so they have the bare minimum
30
+ # for what they need to show the page, lets create a new thread and compress the file in the background and
31
+ # replace the original so they dont have to wait while we work.
32
+ Thread.new do
33
+ if !asset_paths.grep(%r[/javascripts]).empty?
34
+ compressed_content = AssetCompressorWithGoogleClosureOrYUI.javascript_compressor.compress(contents)
35
+ elsif !asset_paths.grep(%r[/stylesheets]).empty?
36
+ compressed_content = AssetCompressorWithGoogleClosureOrYUI.css_compressor.compress(contents)
37
+ else
38
+ raise "I expected that you were either going to cache javascript files or css files"
39
+ end
40
+ File.open(joined_asset_path, "w+") { |cache| cache.write(compressed_content) }
41
+
42
+ zip_name = "#{joined_asset_path}.gz"
43
+ Zlib::GzipWriter.open(zip_name, Zlib::BEST_COMPRESSION) {|f| f.write(compressed_content) }
44
+ # Set mtime to the latest of the combined files to allow for
45
+ # consistent ETag without a shared filesystem.
46
+ # reset the mtime for the new files we just created
47
+ File.utime(mt, mt, joined_asset_path, zip_name)
48
+ end
40
49
  end
41
50
  alias_method_chain :write_asset_file_contents, :create_static_gziped_files
42
51
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: compressed-gzipped-assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Shaw
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-25 00:00:00 -07:00
12
+ date: 2010-01-26 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency