image_compressor_for_carrierwave 1.0.7

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.
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: []