aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/testing/garbage_collection.rb
blob: 7bf9fbafa68264a8fa83c8ecd38be8c4a7afbad0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module ActiveSupport
  module Testing
    module GarbageCollection
      def self.included(base)
        base.teardown :scrub_leftover_instance_variables
      end

      private

      RESERVED_INSTANCE_VARIABLES = %w(@test_passed @passed @method_name @__name__ @_result).map(&:to_sym)

      def scrub_leftover_instance_variables
        (instance_variables.map(&:to_sym) - RESERVED_INSTANCE_VARIABLES).each do |var|
          remove_instance_variable(var)
        end
      end
    end
  end
end