module Paperclip::Callbacks::Defining

def define_paperclip_callbacks(*callbacks)

def define_paperclip_callbacks(*callbacks)
  define_callbacks(*[callbacks, { terminator: hasta_la_vista_baby }].flatten)
  callbacks.each do |callback|
    eval <<-end_callbacks
      def before_#{callback}(*args, &blk)
        set_callback(:#{callback}, :before, *args, &blk)
      end
      def after_#{callback}(*args, &blk)
        set_callback(:#{callback}, :after, *args, &blk)
      end
    end_callbacks
  end
end

def hasta_la_vista_baby

def hasta_la_vista_baby
  lambda do |_, result|
    if result.respond_to?(:call)
      result.call == false
    else
      result == false
    end
  end
end