Sha256: dd563138d50b6114c39b176aeac8d6ce81d406631b9ddc06926d23d916fd4a14

Contents?: true

Size: 1.64 KB

Versions: 23

Compression:

Stored size: 1.64 KB

Contents

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

  module Rollbar
    module Rake
      class << self
        attr_accessor :patched
      end

      module Handler
        def self.included(base)
          base.class_eval do
            alias_method :orig_display_error_message, :display_error_message
            alias_method :display_error_message, :display_error_message_with_rollbar
          end
        end

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

      def self.patch!
        unless patch?
          skip_patch

          return
        end

        ::Rake.application.instance_eval do
          class << self
            include ::Rollbar::Rake::Handler
          end
        end

        self.patched = true
      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 if patched?
        return false unless rake_version

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

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

      def self.patched?
        patched
      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

23 entries across 23 versions & 1 rubygems

Version Path
rollbar-2.19.2 lib/rollbar/plugins/rake.rb
rollbar-2.19.1 lib/rollbar/plugins/rake.rb
rollbar-2.19.0 lib/rollbar/plugins/rake.rb
rollbar-2.18.2 lib/rollbar/plugins/rake.rb
rollbar-2.18.0 lib/rollbar/plugins/rake.rb
rollbar-2.17.0 lib/rollbar/plugins/rake.rb
rollbar-2.16.4 lib/rollbar/plugins/rake.rb
rollbar-2.16.3 lib/rollbar/plugins/rake.rb
rollbar-2.16.2 lib/rollbar/plugins/rake.rb
rollbar-2.16.0 lib/rollbar/plugins/rake.rb
rollbar-2.15.6 lib/rollbar/plugins/rake.rb
rollbar-2.15.5 lib/rollbar/plugins/rake.rb
rollbar-2.15.4 lib/rollbar/plugins/rake.rb
rollbar-2.15.3 lib/rollbar/plugins/rake.rb
rollbar-2.15.2 lib/rollbar/plugins/rake.rb
rollbar-2.15.1 lib/rollbar/plugins/rake.rb
rollbar-2.15.0 lib/rollbar/plugins/rake.rb
rollbar-2.14.1 lib/rollbar/plugins/rake.rb
rollbar-2.14.0 lib/rollbar/plugins/rake.rb
rollbar-2.13.3 lib/rollbar/plugins/rake.rb