Sha256: cd8b3ce6bf00f0f0610d1f6d253017cf1f21c82a34ca1d20b746e49ac39dc440

Contents?: true

Size: 1.01 KB

Versions: 26

Compression:

Stored size: 1.01 KB

Contents

module Paperclip
  module Callbacks
    def self.included(base)
      base.extend(Defining)
      base.send(:include, Running)
    end

    module Defining
      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

      private

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

    module Running
      def run_paperclip_callbacks(callback, &block)
        run_callbacks(callback, &block)
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 4 rubygems

Version Path
kt-paperclip-7.2.2 lib/paperclip/callbacks.rb
kt-paperclip-7.2.1 lib/paperclip/callbacks.rb
kt-paperclip-7.2.0 lib/paperclip/callbacks.rb
kt-paperclip-6.4.2 lib/paperclip/callbacks.rb
kt-paperclip-5.4.0 lib/paperclip/callbacks.rb
kt-paperclip-7.1.1 lib/paperclip/callbacks.rb
kt-paperclip-7.1.0 lib/paperclip/callbacks.rb
kt-paperclip-7.0.1 lib/paperclip/callbacks.rb
kt-paperclip-7.0.0 lib/paperclip/callbacks.rb
kt-paperclip-6.4.1 lib/paperclip/callbacks.rb
kt-paperclip-6.4.0 lib/paperclip/callbacks.rb
kt-paperclip-6.3.0 lib/paperclip/callbacks.rb
kt-paperclip-6.2.2 lib/paperclip/callbacks.rb
kt-paperclip-6.2.1 lib/paperclip/callbacks.rb
kt-paperclip-6.2.0 lib/paperclip/callbacks.rb
paperclip-6.1.0 lib/paperclip/callbacks.rb
paperclip-6.0.0 lib/paperclip/callbacks.rb
paperclip-5.3.0 lib/paperclip/callbacks.rb
paperclip-5.2.1 lib/paperclip/callbacks.rb
paperclip-5.2.0 lib/paperclip/callbacks.rb