module SaferInitialize::ActiveRecord::Extensions

Public Instance Methods

safer_initialize(filter = nil, message: 'initialize error', &block) click to toggle source
# File lib/safer_initialize/active_record/extensions.rb, line 7
def safer_initialize(filter = nil, message: 'initialize error', &block)
  after_initialize do |object|
    unless SaferInitialize::Globals.safe?
      result = filter ? object.send(filter) : object.instance_exec(object, &block)
      unless result
        message_text = message.respond_to?(:call) ? message.call(object) : message
        SaferInitialize.configuration.error_handle.call(SaferInitialize::Error.new(message_text))
      end
    end
  end
end