From bbfc9e74f390d39c69fa2a3ffddf969abbf28644 Mon Sep 17 00:00:00 2001 From: Max Melentiev Date: Mon, 18 Feb 2019 14:46:03 +0530 Subject: [PATCH] Fix callbacks in rails 5 --- lib/paperclip/callback_compatability.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/paperclip/callback_compatability.rb b/lib/paperclip/callback_compatability.rb index dd550c7..54622f1 100644 --- a/lib/paperclip/callback_compatability.rb +++ b/lib/paperclip/callback_compatability.rb @@ -34,15 +34,18 @@ module Paperclip module Rails3 module Defining - TERMINATOR = - if Gem::Version.new(ActiveSupport::VERSION::STRING) >= Gem::Version.new('4.1') - ->(target, result) { result == false } + rails_version = Gem::Version.new(ActiveSupport::VERSION::STRING) + CALLBACK_OPTIONS = + if rails_version >= Gem::Version.new('5.0') + {} + elsif rails_version >= Gem::Version.new('4.1') + {terminator: ->(target, result) { result == false }} else - 'result == false' + {terminator: 'result == false'} end def define_paperclip_callbacks(*callbacks) - define_callbacks *[callbacks, {terminator: TERMINATOR}].flatten + define_callbacks *callbacks.flatten, CALLBACK_OPTIONS callbacks.map(&:to_sym).each do |callback| define_singleton_method "before_#{callback}" do |*args, &blk| set_callback(callback, :before, *args, &blk)