Class: SrcsetImages::VipsCreateImageVersion

Inherits:
Object
  • Object
show all
Defined in:
lib/middleman-srcset_images/vips_create_image_version.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(img, destination_path, options = {}) ⇒ VipsCreateImageVersion

Returns a new instance of VipsCreateImageVersion.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/middleman-srcset_images/vips_create_image_version.rb', line 12

def initialize(img, destination_path, options = {})
  @source = if img.is_a?(String) || img.is_a?(Pathname)
              ImageProcessing::Vips.source(img)
            else
              img
            end

  @destination = destination_path

  @width  = options[:width]
  @height = options[:height]
  @crop   = !!options[:crop]

  @quality = options.fetch :quality, 90
end

Class Method Details

.call(*_) ⇒ Object

VipsCreateImageVersion.(source, destination, width: 800, height: 600, …)



8
9
10
# File 'lib/middleman-srcset_images/vips_create_image_version.rb', line 8

def self.call(*_)
  new(*_).call
end

Instance Method Details

#callObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/middleman-srcset_images/vips_create_image_version.rb', line 29

def call
  img = if @crop
    @source.resize_to_fill @width, @height, crop: :attention
  else
    @source.resize_to_limit @width, @height
  end
  processed = img
    .saver(strip: true, quality: @quality, interlace: true)
    .call

  FileUtils.mkdir_p File.dirname(@destination)
  FileUtils.mv processed, @destination
  true
end