module IdCard class NetworkLogo < ApplicationRecord before_validation :calculate_aspect_ratio, if: :image_data_changed? scope :defaults, -> { where(default: true) } class << self def medcost defaults.where("filename LIKE ?", "%Medcost%") end def cigna defaults.where("filename LIKE ?", "%Cigna%") end end private def calculate_aspect_ratio image_io = StringIO.new(image_data) width, height = FastImage.size(image_io) image_ratio = width.to_f / height if image_ratio self.aspect_ratio = image_ratio.round(2) end end end end