Sha256: da5f791683dfbd5f2e8b8d2689aff42488812ae9c21390faff731f2969a7d9b8

Contents?: true

Size: 1.35 KB

Versions: 4

Compression:

Stored size: 1.35 KB

Contents

Rollbar.plugins.define('active_model') do
  dependency { !configuration.disable_monkey_patch }
  dependency { defined?(ActiveModel::Validations) }
  dependency do
    require 'active_model/version'

    ActiveModel::VERSION::MAJOR >= 3
  end

  execute! do
    module Rollbar
      # Module that defines methods to be used by instances using
      # ActiveModel::Validations
      # The name is ActiveRecordExtension in order to not break backwards
      # compatibility, although probably it should be named
      # Rollbar::ValidationsExtension or similar
      module ActiveRecordExtension
        def report_validation_errors_to_rollbar
          errors.full_messages.each do |error|
            Rollbar.log_info "[Rollbar] Reporting form validation error: #{error} for #{self}"
            Rollbar.warning("Form Validation Error: #{error} for #{self}")
          end
        end
      end
    end
  end

  execute! do
    ActiveModel::Validations.module_eval do
      include Rollbar::ActiveRecordExtension
    end

    # If ActiveRecord::Base has been already loaded,
    # it's including a not updated version of ActiveModel::Validations
    # We then want to include Rollbar::ActiveRecordExtension
    # in ActiveRecord::Base
    if defined?(ActiveRecord::Base)
      ActiveRecord::Base.class_eval do
        include Rollbar::ActiveRecordExtension
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rollbar-2.13.3 lib/rollbar/plugins/validations.rb
rollbar-2.13.2 lib/rollbar/plugins/validations.rb
rollbar-2.13.1 lib/rollbar/plugins/validations.rb
rollbar-2.13.0 lib/rollbar/plugins/validations.rb