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