buck-ai/has_placeholder_image

View on GitHub
lib/has_placeholder_image/image_generate_job.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

module HasPlaceholderImage
  class ImageGenerateJob < ApplicationJob
    queue_as :default

    def perform(source_class:, id:, options:)
      model  = source_class.constantize
      record = model.find(id)

      source_attr = record.send(options[:source])
      target_attr = record.send(options[:target])

      text  = TextGenerator.send(options[:transformer], source_attr)
      image = ImageGenerator.new(text, **options)

      target_attr.attach(io: File.open(image.file), filename: File.basename(image.file))
    end
  end
end