module Paperclip::Callbacks::Defining

def callback_terminator

def callback_terminator
  if ::ActiveSupport::VERSION::STRING >= '4.1'
    lambda { |target, result| result == false }
  else
    'result == false'
  end
end

def define_paperclip_callbacks(*callbacks)

def define_paperclip_callbacks(*callbacks)
  define_callbacks(*[callbacks, {:terminator => callback_terminator}].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