class DragonflyLibvips::Plugin

Public Instance Methods

call(app, _opts = {}) click to toggle source
# File lib/dragonfly_libvips/plugin.rb, line 9
def call(app, _opts = {})
  # Analysers
  app.add_analyser :image_properties, DragonflyLibvips::Analysers::ImageProperties.new

  %w[ width
      height
      xres
      yres
      format
  ].each do |name|
    app.add_analyser(name) { |c| c.analyse(:image_properties)[name] }
  end

  app.add_analyser(:aspect_ratio) { |c| c.analyse(:width).to_f / c.analyse(:height).to_f }
  app.add_analyser(:portrait) { |c| c.analyse(:aspect_ratio) < 1.0 }
  app.add_analyser(:landscape) { |c| !c.analyse(:portrait) }

  app.add_analyser(:image) do |c|
    begin
      c.analyse(:image_properties).key?('format')
    rescue ::Vips::Error
      false
    end
  end

  # Aliases
  app.define(:portrait?) { portrait }
  app.define(:landscape?) { landscape }
  app.define(:image?) { image }

  # Processors
  app.add_processor :encode, Processors::Encode.new
  app.add_processor :extract_area, Processors::ExtractArea.new
  app.add_processor :thumb, Processors::Thumb.new
  app.add_processor :rotate, Processors::Rotate.new
end