Module: ImageOptimizer
- Defined in:
- lib/image-optimizer.rb,
lib/image-optimizer/png.rb,
lib/image-optimizer/jpeg.rb
Defined Under Namespace
Constant Summary collapse
- BEFORE =
Indicates, callback is called before the optimization.
:before
- AFTER =
Indicates, callback is called before the optimization.
:after
- METHOD =
Indicates, callback returns the method.
:method
Class Method Summary collapse
-
.available?(command) ⇒ Boolean
Indicates, optimizer is available.
-
.optimize(item, &block) ⇒ Object
Optimizes given file or folder.
-
.optimize_directory(item, &block) ⇒ Object
Optimizes given folder.
-
.optimize_file(path, &block) ⇒ Object
Optimizes given file.
Class Method Details
.available?(command) ⇒ Boolean
Indicates, optimizer is available.
117 118 119 120 121 122 123 124 125 126 |
# File 'lib/image-optimizer.rb', line 117 def self.available?(command) @optimizers = { } if @optimizers.nil? if command.in? @optimizers return @optimizers[command] else available = (not Which.which(command.to_s).empty?) return @optimizers[command] = available end end |
.optimize(item, &block) ⇒ Object
Optimizes given file or folder.
If array given, go recursively deep to it. Yields paths to optimized files.
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/image-optimizer.rb', line 56 def self.optimize(item, &block) if item.kind_of? Array item.each do |i| self::optimize(i, &block) end else if File.file? item self::optimize_file(item, &block) elsif File.directory? item self::optimize_directory(item, &block) end end end |
.optimize_directory(item, &block) ⇒ Object
Optimizes given folder. Yields paths to optimized files.
78 79 80 81 82 83 84 85 86 |
# File 'lib/image-optimizer.rb', line 78 def self.optimize_directory(item, &block) Dir.open(item) do |dir| dir.each do |i| if i[0].chr != ?. self::optimize(item + "/" + i, &block) end end end end |
.optimize_file(path, &block) ⇒ Object
Optimizes given file. Yields paths to optimized files.
96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/image-optimizer.rb', line 96 def self.optimize_file(path, &block) ext = File.extname(path) case ext when ".png" ImageOptimizer::Png::optimize(path, &block) when ".jpg" ImageOptimizer::Jpeg::optimize(path, &block) end end |