Methods
Public Instance methods
run_in_transaction?()
       # File activerecord/lib/active_record/fixtures.rb, line 920
920:     def run_in_transaction?
921:       use_transactional_fixtures &&
922:         !self.class.uses_transaction?(method_name)
923:     end
setup_fixtures()
       # File activerecord/lib/active_record/fixtures.rb, line 925
925:     def setup_fixtures
926:       return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank?
927: 
928:       if pre_loaded_fixtures && !use_transactional_fixtures
929:         raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures'
930:       end
931: 
932:       @fixture_cache = {}
933:       @@already_loaded_fixtures ||= {}
934: 
935:       # Load fixtures once and begin transaction.
936:       if run_in_transaction?
937:         if @@already_loaded_fixtures[self.class]
938:           @loaded_fixtures = @@already_loaded_fixtures[self.class]
939:         else
940:           load_fixtures
941:           @@already_loaded_fixtures[self.class] = @loaded_fixtures
942:         end
943:         ActiveRecord::Base.connection.increment_open_transactions
944:         ActiveRecord::Base.connection.transaction_joinable = false
945:         ActiveRecord::Base.connection.begin_db_transaction
946:       # Load fixtures for every test.
947:       else
948:         Fixtures.reset_cache
949:         @@already_loaded_fixtures[self.class] = nil
950:         load_fixtures
951:       end
952: 
953:       # Instantiate fixtures for every test if requested.
954:       instantiate_fixtures if use_instantiated_fixtures
955:     end
teardown_fixtures()
       # File activerecord/lib/active_record/fixtures.rb, line 957
957:     def teardown_fixtures
958:       return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank?
959: 
960:       unless run_in_transaction?
961:         Fixtures.reset_cache
962:       end
963: 
964:       # Rollback changes if a transaction is active.
965:       if run_in_transaction? && ActiveRecord::Base.connection.open_transactions != 0
966:         ActiveRecord::Base.connection.rollback_db_transaction
967:         ActiveRecord::Base.connection.decrement_open_transactions
968:       end
969:       ActiveRecord::Base.clear_active_connections!
970:     end
Private Instance methods
instantiate_fixtures()
        # File activerecord/lib/active_record/fixtures.rb, line 988
 988:       def instantiate_fixtures
 989:         if pre_loaded_fixtures
 990:           raise RuntimeError, 'Load fixtures before instantiating them.' if Fixtures.all_loaded_fixtures.empty?
 991:           unless @@required_fixture_classes
 992:             self.class.require_fixture_classes Fixtures.all_loaded_fixtures.keys
 993:             @@required_fixture_classes = true
 994:           end
 995:           Fixtures.instantiate_all_loaded_fixtures(self, load_instances?)
 996:         else
 997:           raise RuntimeError, 'Load fixtures before instantiating them.' if @loaded_fixtures.nil?
 998:           @loaded_fixtures.each do |table_name, fixtures|
 999:             Fixtures.instantiate_fixtures(self, table_name, fixtures, load_instances?)
1000:           end
1001:         end
1002:       end
load_fixtures()
       # File activerecord/lib/active_record/fixtures.rb, line 973
973:       def load_fixtures
974:         @loaded_fixtures = {}
975:         fixtures = Fixtures.create_fixtures(fixture_path, fixture_table_names, fixture_class_names)
976:         unless fixtures.nil?
977:           if fixtures.instance_of?(Fixtures)
978:             @loaded_fixtures[fixtures.name] = fixtures
979:           else
980:             fixtures.each { |f| @loaded_fixtures[f.name] = f }
981:           end
982:         end
983:       end
load_instances?()
        # File activerecord/lib/active_record/fixtures.rb, line 1004
1004:       def load_instances?
1005:         use_instantiated_fixtures != :no_instances
1006:       end