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