sprockets-image_compressor 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Image compressor processor for Sprockets
2
2
 
3
- Sprockets preprocessor to losslessly compress images. Requires [pngcrush](http://pmt.sourceforge.net/pngcrush/) to be installed and in your PATH.
3
+ Sprockets preprocessor to losslessly compress .png and .jpg images. Requires [pngcrush](http://pmt.sourceforge.net/pngcrush/) and [jpegoptim](http://www.kokkonen.net/tjko/projects.html) to be installed and in your PATH.
4
4
 
5
5
  ## Integration with Rails 3.1+
6
6
 
@@ -10,16 +10,14 @@ Just add this gem to your Gemfile:
10
10
  gem 'sprockets-image_compressor'
11
11
  ````
12
12
 
13
- The gem ships with a Railtie which will automatically register the compressor preprocessor.
13
+ The gem ships with a Railtie which will automatically register the compressor preprocessors.
14
14
 
15
- ## Caveats
15
+ ## TODO
16
16
 
17
- For the first release, it only compresses pngs with [pngcrush](http://pmt.sourceforge.net/pngcrush/). But don't worry, support for compressing jpegs via jpegoptim will be added shortly!
17
+ * Detect missing pngcrush or jpegoptim installations
18
+ * Provide configuration hooks
19
+ * Tests
18
20
 
19
- It doesn't even bother to make sure you have pngcrush installed.
20
-
21
- Also, no tests.
22
-
23
- ### License
21
+ ## License
24
22
 
25
23
  (MIT License) - Copyright (c) 2011 Micah Geisel
@@ -1,3 +1,4 @@
1
1
  require "sprockets/image_compressor/version"
2
2
  require "sprockets/image_compressor/png_compressor"
3
+ require "sprockets/image_compressor/jpg_compressor"
3
4
  require "sprockets/image_compressor/railtie" if defined?(Rails)
@@ -0,0 +1,18 @@
1
+ module Sprockets
2
+ module ImageCompressor
3
+ class JpgCompressor
4
+ def compress(content)
5
+ compressed_jpg_data = ""
6
+ Tempfile.open ["file", ".jpg"] do |file|
7
+ file.write content
8
+ file.close
9
+
10
+ out = `jpegoptim --strip-all #{file.path} 2>&1`
11
+ file.open
12
+ compressed_jpg_data = file.read
13
+ end
14
+ compressed_jpg_data
15
+ end
16
+ end
17
+ end
18
+ end
@@ -7,7 +7,7 @@ module Sprockets
7
7
  out_file_path = in_file.path + ".optimized.png"
8
8
  in_file.write content
9
9
  in_file.close
10
- out = `pngcrush #{in_file.path} #{out_file_path}`
10
+ out = `pngcrush #{in_file.path} #{out_file_path} 2>&1`
11
11
  in_file.delete
12
12
 
13
13
  compressed_png_data = File.read out_file_path
@@ -1,12 +1,17 @@
1
1
  module Sprockets
2
2
  module ImageCompressor
3
3
  class Railtie < Rails::Engine
4
- initializer :setup_png_compressor do |app|
4
+ initializer :setup_image_compressors do |app|
5
5
  if app.config.assets.compress
6
6
  app.assets.register_mime_type 'image/png', '.png'
7
7
  app.assets.register_postprocessor 'image/png', :png_compressor do |context, data|
8
8
  PngCompressor.new.compress data
9
9
  end
10
+
11
+ app.assets.register_mime_type 'image/jpeg', '.jpg'
12
+ app.assets.register_postprocessor 'image/jpeg', :jpg_compressor do |context, data|
13
+ JpgCompressor.new.compress data
14
+ end
10
15
  end
11
16
  end
12
17
  end
@@ -1,5 +1,5 @@
1
1
  module Sprockets
2
2
  module Imagecompressor
3
- VERSION = "0.0.1"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets-image_compressor
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 0
9
8
  - 1
10
- version: 0.0.1
9
+ - 0
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Micah Geisel
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-20 00:00:00 Z
18
+ date: 2011-09-21 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: Losslessly compress images in the Rails asset pipeline
@@ -34,6 +34,7 @@ files:
34
34
  - Rakefile
35
35
  - lib/sprockets-image_compressor.rb
36
36
  - lib/sprockets/image_compressor.rb
37
+ - lib/sprockets/image_compressor/jpg_compressor.rb
37
38
  - lib/sprockets/image_compressor/png_compressor.rb
38
39
  - lib/sprockets/image_compressor/railtie.rb
39
40
  - lib/sprockets/image_compressor/version.rb