Sha256: ec4401c2c466ae69063f178536320082c8a23aa948c5ee2c35973774e578767c

Contents?: true

Size: 1.15 KB

Versions: 2

Compression:

Stored size: 1.15 KB

Contents

Rollbar.plugins.define('rake') do
  require_dependency('rake')
  dependency { !configuration.disable_monkey_patch }
  dependency { defined?(Rake) }

  module Rollbar
    module Rake
      def self.patch!
        skip_patch && return unless patch?

        ::Rake::Application.class_eval do
          alias_method :orig_display_error_message, :display_error_message

          def display_error_message(ex)
            Rollbar.error(ex, :use_exception_level_filters => true)
            orig_display_error_message(ex)
          end
        end
      end

      def self.skip_patch
        warn('[Rollbar] Rollbar is disabled for Rake tasks since your Rake version is under 0.9.x. Please upgrade to 0.9.x or higher.')
      end

      def self.patch?
        return false unless rake_version

        major, minor, = rake_version.split('.').map(&:to_i)

        major > 0 || major == 0 && minor > 8
      end

      def self.rake_version
        if Object.const_defined?('RAKEVERSION')
          return RAKEVERSION
        elsif ::Rake.const_defined?('VERSION')
          return ::Rake::VERSION
        end
      end
    end
  end

  execute do
    Rollbar::Rake.patch!
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rollbar-2.12.0 lib/rollbar/plugins/rake.rb
rollbar-2.11.5 lib/rollbar/plugins/rake.rb