module BigRecord::TestFixtures
Public Class Methods
included(base)
click to toggle source
# File lib/big_record/fixtures.rb, line 838 def self.included(base) base.class_eval do setup :setup_bigrecord_fixtures teardown :teardown_bigrecord_fixtures superclass_delegating_accessor :bigrecord_fixture_table_names superclass_delegating_accessor :bigrecord_fixture_class_names superclass_delegating_accessor :bigrecord_use_transactional_fixtures superclass_delegating_accessor :bigrecord_use_instantiated_fixtures # true, false, or :no_instances superclass_delegating_accessor :bigrecord_pre_loaded_fixtures self.bigrecord_fixture_table_names = [] self.bigrecord_use_transactional_fixtures = false self.bigrecord_use_instantiated_fixtures = true self.bigrecord_pre_loaded_fixtures = false @@already_loaded_bigrecord_fixtures = {} self.bigrecord_fixture_class_names = {} end base.extend ClassMethods end
method_added(method)
click to toggle source
# File lib/big_record/fixtures.rb, line 962 def self.method_added(method) return if @__disable_method_added__ @__disable_method_added__ = true case method.to_s when 'setup' undef_method :setup_without_fixtures if method_defined?(:setup_without_fixtures) alias_method :setup_without_fixtures, :setup define_method(:full_setup) do setup_with_bigrecord_fixtures setup_without_fixtures end alias_method :setup, :full_setup when 'teardown' undef_method :teardown_without_fixtures if method_defined?(:teardown_without_fixtures) alias_method :teardown_without_fixtures, :teardown define_method(:full_teardown) do teardown_fixtures teardown_with_bigrecord_fixtures end alias_method :teardown, :full_teardown end @__disable_method_added__ = false end
Public Instance Methods
run_in_transaction?()
click to toggle source
# File lib/big_record/fixtures.rb, line 926 def run_in_transaction? use_transactional_fixtures && !self.class.uses_transaction?(method_name) end
setup_bigrecord_fixtures()
click to toggle source
# File lib/big_record/fixtures.rb, line 931 def setup_bigrecord_fixtures return if @bigrecord_fixtures_setup @bigrecord_fixtures_setup = true return unless defined?(BigRecord::Base) && !BigRecord::Base.configurations.blank? if pre_loaded_fixtures && !use_transactional_fixtures raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures' end @bigrecord_fixture_cache = {} BigRecordFixtures.reset_cache @@already_loaded_bigrecord_fixtures[self.class] = nil load_bigrecord_fixtures # Instantiate fixtures for every test if requested. instantiate_fixtures if use_instantiated_fixtures end
teardown_bigrecord_fixtures()
click to toggle source
# File lib/big_record/fixtures.rb, line 950 def teardown_bigrecord_fixtures return if @bigrecord_fixtures_teardown @bigrecord_fixtures_teardown = true return unless defined?(BigRecord::Base) && !BigRecord::Base.configurations.blank? unless use_transactional_fixtures? BigRecordFixtures.reset_cache end BigRecord::Base.verify_active_connections! end
Private Instance Methods
instantiate_bigrecord_fixtures()
click to toggle source
# File lib/big_record/fixtures.rb, line 1005 def instantiate_bigrecord_fixtures if pre_loaded_fixtures raise RuntimeError, 'Load fixtures before instantiating them.' if BigRecordFixtures.all_loaded_fixtures.empty? unless @@required_bigrecord_fixture_classes self.class.require_fixture_classes BigRecordFixtures.all_loaded_fixtures.keys @@required_bigrecord_fixture_classes = true end BigRecordFixtures.instantiate_all_loaded_fixtures(self, load_instances?) else raise RuntimeError, 'Load fixtures before instantiating them.' if @loaded_bigrecord_fixtures.nil? @loaded_bigrecord_fixtures.each do |table_name, fixtures| BigRecordFixtures.instantiate_fixtures(self, table_name, fixtures, load_instances?) end end end
load_bigrecord_fixtures()
click to toggle source
# File lib/big_record/fixtures.rb, line 989 def load_bigrecord_fixtures @loaded_bigrecord_fixtures = {} fixtures = BigRecordFixtures.create_fixtures(fixture_path, bigrecord_fixture_table_names, bigrecord_fixture_class_names) unless fixtures.nil? if fixtures.instance_of?(BigRecordFixtures) @loaded_bigrecord_fixtures[fixtures.table_name] = fixtures else fixtures.each { |f| @loaded_bigrecord_fixtures[f.table_name] = f } end end end
load_bigrecord_instances?()
click to toggle source
# File lib/big_record/fixtures.rb, line 1021 def load_bigrecord_instances? use_instantiated_fixtures != :no_instances end