require "image_processing/vips" module LdapManager class UpdateAvatar < LdapManagerService def initialize(dn:, file:) @dn = dn @img_data = process(file) end def call result = replace_attribute @dn, :jpegPhoto, @img_data result end private def process(file) processed = ImageProcessing::Vips .resize_to_fill(256, 256) .source(file) .convert("jpeg") .saver(strip: true) .call processed.read end end end