Module: ActiveRecord::TestFixtures
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary
collapse
append_features, extended, included
Instance Method Details
#run_in_transaction? ⇒ Boolean
870
871
872
873
|
# File 'activerecord/lib/active_record/fixtures.rb', line 870
def run_in_transaction?
use_transactional_fixtures &&
!self.class.uses_transaction?(method_name)
end
|
#setup_fixtures ⇒ Object
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
|
# File 'activerecord/lib/active_record/fixtures.rb', line 875
def setup_fixtures
return unless !ActiveRecord::Base.configurations.blank?
if pre_loaded_fixtures && !use_transactional_fixtures
raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures'
end
@fixture_cache = {}
@@already_loaded_fixtures ||= {}
if run_in_transaction?
if @@already_loaded_fixtures[self.class]
@loaded_fixtures = @@already_loaded_fixtures[self.class]
else
@loaded_fixtures = load_fixtures
@@already_loaded_fixtures[self.class] = @loaded_fixtures
end
ActiveRecord::Base.connection.increment_open_transactions
ActiveRecord::Base.connection.transaction_joinable = false
ActiveRecord::Base.connection.begin_db_transaction
else
ActiveRecord::Fixtures.reset_cache
@@already_loaded_fixtures[self.class] = nil
@loaded_fixtures = load_fixtures
end
instantiate_fixtures if use_instantiated_fixtures
end
|