module Shrine::Plugins::Sequel::AttachmentMethods
Public Instance Methods
included(model)
click to toggle source
Calls superclass method
# File lib/shrine/plugins/sequel.rb, line 25 def included(model) super return unless model < ::Sequel::Model name = @name if shrine_class.opts[:sequel][:validations] define_method :validate do super() send(:"#{name}_attacher").send(:sequel_validate) end end if shrine_class.opts[:sequel][:hooks] define_method :before_save do super() if send(:"#{name}_attacher").changed? send(:"#{name}_attacher").send(:sequel_before_save) end end define_method :after_save do super() if send(:"#{name}_attacher").changed? send(:"#{name}_attacher").send(:sequel_after_save) end end define_method :after_destroy do super() if send(:"#{name}_attacher").attached? send(:"#{name}_attacher").send(:sequel_after_destroy) end end end # reload the attacher on record reload define_method :_refresh do |*args| result = super(*args) send(:"#{name}_attacher").reload if instance_variable_defined?(:"@#{name}_attacher") result end private :_refresh end