image_compressor_for_carrierwave 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 42d79e08be359c9c8b0426a7c8aae7911d49ff65
4
+ data.tar.gz: 3948ce2543c57d3bb306d8806a752a61217aa524
5
+ SHA512:
6
+ metadata.gz: 5b402a8b0d34629b9281e76263b9c5d92f997885ae657120c2c564b33635d88f5e0083986f18a0f948de3672908cab10ef4fd385a93ade2c5c2cdb2705692f5a
7
+ data.tar.gz: 869410826a77805189b538d37b3c3bb6bd9be01a42c141761b67c6ee4f197200b28807e33f7fae064704ebae514cfc49d51ac4014c29df73bcd6ce5eeed7efcd
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in image_compressor_for_carrierwave.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,52 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ image_compressor_for_carrierwave (1.0.7)
5
+ png_quantizator
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activemodel (4.2.6)
11
+ activesupport (= 4.2.6)
12
+ builder (~> 3.1)
13
+ activesupport (4.2.6)
14
+ i18n (~> 0.7)
15
+ json (~> 1.7, >= 1.7.7)
16
+ minitest (~> 5.1)
17
+ thread_safe (~> 0.3, >= 0.3.4)
18
+ tzinfo (~> 1.1)
19
+ builder (3.2.2)
20
+ carrierwave (0.11.2)
21
+ activemodel (>= 3.2.0)
22
+ activesupport (>= 3.2.0)
23
+ json (>= 1.7)
24
+ mime-types (>= 1.16)
25
+ mimemagic (>= 0.3.0)
26
+ i18n (0.7.0)
27
+ json (1.8.3)
28
+ mime-types (3.1)
29
+ mime-types-data (~> 3.2015)
30
+ mime-types-data (3.2016.0521)
31
+ mimemagic (0.3.1)
32
+ mini_magick (4.5.1)
33
+ minitest (5.9.0)
34
+ png_quantizator (0.2.1)
35
+ rake (11.2.2)
36
+ rmagick (2.15.4)
37
+ thread_safe (0.3.5)
38
+ tzinfo (1.2.2)
39
+ thread_safe (~> 0.1)
40
+
41
+ PLATFORMS
42
+ ruby
43
+
44
+ DEPENDENCIES
45
+ carrierwave
46
+ image_compressor_for_carrierwave!
47
+ mini_magick
48
+ rake
49
+ rmagick
50
+
51
+ BUNDLED WITH
52
+ 1.10.5
data/README.md ADDED
@@ -0,0 +1,26 @@
1
+ # image_compressor_for_carrierwave
2
+
3
+ On your CarrierWave uploader, include the extension:
4
+
5
+ ```ruby
6
+ class ImageUploader < CarrierWave::Uploader::Base
7
+ ...
8
+ include ImageCompressorForCarrierwave::CarrierWaveExtension
9
+ ...
10
+ end
11
+ ```
12
+
13
+ call the optimize method on the uploader:
14
+ ```ruby
15
+ class ImageUploader < CarrierWave::Uploader::Base
16
+ ...
17
+ process :optimize
18
+ ...
19
+ end
20
+ ```
21
+
22
+ passing parameters to encoders:
23
+
24
+ ```ruby
25
+ process optimize: [{ verbose: false, quality: 65, level: 2, command_options: '--strip all --i 1'}]
26
+ ```
@@ -0,0 +1,19 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'image_compressor_for_carrierwave'
3
+ s.version = '1.0.7'
4
+ s.date = '2016-06-10'
5
+ s.summary = "Image compressor to use with carrierwave uploaders"
6
+ s.description = "A simple image compression gem"
7
+ s.authors = ["Alejandro Fernandes Antunes"]
8
+ s.email = 'afernandesantunes@gmail.com'
9
+ s.files = ["lib/image_compressor_for_carrierwave.rb", "lib/image_compressor_for_carrierwave/carrierwave_extension.rb"]
10
+ s.homepage =
11
+ 'http://rubygems.org/gems/image_compressor_for_carrierwave'
12
+ s.files = `git ls-files`.split("\n")
13
+ s.require_paths = ["lib"]
14
+ s.add_dependency "png_quantizator"
15
+ s.add_development_dependency "carrierwave"
16
+ s.add_development_dependency "mini_magick"
17
+ s.add_development_dependency "rmagick"
18
+ s.add_development_dependency "rake"
19
+ end
@@ -0,0 +1,47 @@
1
+ require 'png_quantizator'
2
+ require 'image_compressor_for_carrierwave/carrierwave_extension'
3
+
4
+ module ImageCompressorForCarrierwave
5
+ class << self
6
+ def optimize(path, opts={})
7
+ output = optimize_for(path, opts)
8
+ puts output if opts[:verbose]
9
+ true
10
+ end
11
+
12
+ def pngquant(path)
13
+ PngQuantizator::Image.new(path).quantize!
14
+ end
15
+
16
+ private
17
+
18
+ def optimize_for(path, opts)
19
+ case mimetype(path)
20
+ when "png", "gif" then optimize_png(path, opts)
21
+ when "jpeg" then optimize_jpg(path, opts)
22
+ end
23
+ end
24
+
25
+ def mimetype(path)
26
+ IO.popen(['file', '--brief', '--mime-type', path], in: :close, err: :close){|io| io.read.chomp.sub(/image\//, '')}
27
+ end
28
+
29
+ def optimize_png(path, opts)
30
+ pngquant(path)
31
+ rescue Exception => error
32
+ puts "Toubles applying quantizer: #{error}"
33
+ end
34
+
35
+ def optimize_jpg(path, opts)
36
+ quality = (0..100).include?(opts[:quality]) ? opts[:quality] : 100
37
+ vo = opts[:verbose] ? "-v" : "-q"
38
+ path.gsub!(/([\(\)\[\]\{\}\*\?\\])/, '\\\\\1')
39
+ `#{command_path("jpegoptim")} -f -m#{quality} --strip-all #{opts[:command_options]} #{vo} #{path}`
40
+ end
41
+
42
+ def command_path(command)
43
+ command
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,11 @@
1
+ module ImageCompressorForCarrierwave
2
+ module CarrierWaveExtension
3
+ def optimize(opts = {})
4
+ ::ImageCompressorForCarrierwave.optimize(current_path, opts)
5
+ end
6
+
7
+ def pngquant
8
+ ::ImageCompressorForCarrierwave.pngquant(current_path)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module ImageCompressorForCarrierwave
2
+ VERSION = "1.0.7"
3
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: image_compressor_for_carrierwave
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Alejandro Fernandes Antunes
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-06-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: png_quantizator
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: carrierwave
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: mini_magick
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rmagick
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: A simple image compression gem
84
+ email: afernandesantunes@gmail.com
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files: []
88
+ files:
89
+ - Gemfile
90
+ - Gemfile.lock
91
+ - README.md
92
+ - image_compressor_for_carrierwave.gemspec
93
+ - lib/image_compressor_for_carrierwave.rb
94
+ - lib/image_compressor_for_carrierwave/carrierwave_extension.rb
95
+ - lib/image_compressor_for_carrierwave/version.rb
96
+ homepage: http://rubygems.org/gems/image_compressor_for_carrierwave
97
+ licenses: []
98
+ metadata: {}
99
+ post_install_message:
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubyforge_project:
115
+ rubygems_version: 2.4.8
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Image compressor to use with carrierwave uploaders
119
+ test_files: []