Sha256: 55eba36a1403c097722462c1f2902ca092694c3e2f8eca128c1102746c297025

Contents?: true

Size: 1.97 KB

Versions: 3

Compression:

Stored size: 1.97 KB

Contents

require 'rollbar'

namespace :rollbar do
  desc "Verify your gem installation by sending a test exception to Rollbar"
  task :test => [:environment] do
    Rails.logger = defined?(ActiveSupport::TaggedLogging) ?
      ActiveSupport::TaggedLogging.new(Logger.new(STDOUT)) :
      Logger.new(STDOUT)

    Rails.logger.level = Logger::DEBUG
    Rollbar.configure do |config|
      config.logger = Rails.logger
    end

    class RollbarTestingException < RuntimeError; end

    unless Rollbar.configuration.access_token
      puts "Rollbar needs an access token configured. Check the README for instructions."
      exit
    end

    begin
      require './app/controllers/application_controller'
    rescue LoadError
    end

    unless defined?(ApplicationController)
      puts "No ApplicationController found, using ActionController::Base instead"
      class ApplicationController < ActionController::Base; end
    end

    puts "Setting up the controller."
    class ApplicationController
      prepend_before_filter :test_rollbar
      def test_rollbar
        puts "Raising RollbarTestingException to simulate app failure."
        raise RollbarTestingException.new, 'Testing rollbar with "rake rollbar:test". If you can see this, it works.'
      end

      def verify
      end

      def logger
        nil
      end
    end

    class RollbarTestController < ApplicationController; end

    Rails.application.routes_reloader.execute_if_updated
    Rails.application.routes.draw do
      get 'verify' => 'application#verify', :as => 'verify'
    end

    puts "Processing..."
    protocol = Rails.application.config.force_ssl ? 'https' : 'http'
    env = Rack::MockRequest.env_for("#{protocol}://www.example.com/verify")
    status, headers, response = Rails.application.call(env)
    
    unless status == 500
      puts "Test failed! You may have a configuration issue, or you could be using a gem that's blocking the test. Contact support@rollbar.com if you need help troubleshooting."
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rollbar-0.11.4 lib/rollbar/rake_tasks.rb
rollbar-0.11.3 lib/rollbar/rake_tasks.rb
rollbar-0.11.2 lib/rollbar/rake_tasks.rb