# File 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
# File 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
# File 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
# File 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
# File 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
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.