Sha256: 84a39b1f56735c10bf1f94260cbccba66b41b60f6f518ed04db23f8eb2f8af8c

Contents?: true

Size: 701 Bytes

Versions: 225

Compression:

Stored size: 701 Bytes

Contents

module ActionDispatch
  class Rescue
    def initialize(app, rescuers = {}, &block)
      @app, @rescuers = app, {}
      rescuers.each { |exception, rescuer| rescue_from(exception, rescuer) }
      instance_eval(&block) if block_given?
    end

    def call(env)
      @app.call(env)
    rescue Exception => exception
      if rescuer = @rescuers[exception.class.name]
        env['action_dispatch.rescue.exception'] = exception
        rescuer.call(env)
      else
        raise exception
      end
    end

    protected
      def rescue_from(exception, rescuer)
        exception = exception.class.name if exception.is_a?(Exception)
        @rescuers[exception.to_s] = rescuer
      end
  end
end

Version data entries

225 entries across 186 versions & 19 rubygems

Version Path
actionpack-3.2.14.rc1 lib/action_dispatch/middleware/rescue.rb
swipe-rails-0.0.5 vendor/bundle/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
active_mailer-0.0.9 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
active_mailer-0.0.8 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
active_mailer-0.0.7 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
active_mailer-0.0.6 test/fixtures/dummyapp_rails_3.2/vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
font-awesome-rails-3.1.1.2 vendor/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
font-awesome-rails-3.1.1.2 vendor/ruby/2.0.0/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
font-awesome-rails-3.1.1.2 vendor/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
font-awesome-rails-3.1.1.1 vendor/ruby/2.0.0/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
font-awesome-rails-3.1.1.1 vendor/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
font-awesome-rails-3.1.1.1 vendor/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/rescue.rb
challah-1.0.0.beta3 vendor/bundle/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
fc-webicons-0.0.4 vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
challah-1.0.0.beta2 vendor/bundle/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
challah-1.0.0.beta vendor/bundle/gems/actionpack-3.2.11/lib/action_dispatch/middleware/rescue.rb
challah-1.0.0.beta vendor/bundle/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
fc-webicons-0.0.3 vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
fc-webicons-0.0.2 vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb
fc-webicons-0.0.1 vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.13/lib/action_dispatch/middleware/rescue.rb