Methods
- F
- R
- S
- T
- U
Instance Public methods
# File activerecord/lib/active_record/fixtures.rb, line 753 753: def fixtures(*fixture_names) 754: if fixture_names.first == :all 755: fixture_names = Dir["#{fixture_path}/**/*.{yml}"] 756: fixture_names.map! { |f| f[(fixture_path.size + 1)..-5] } 757: else 758: fixture_names = fixture_names.flatten.map { |n| n.to_s } 759: end 760: 761: self.fixture_table_names |= fixture_names 762: require_fixture_classes(fixture_names) 763: setup_fixture_accessors(fixture_names) 764: end
# File activerecord/lib/active_record/fixtures.rb, line 778 778: def require_fixture_classes(fixture_names = nil) 779: (fixture_names || fixture_table_names).each do |fixture_name| 780: file_name = fixture_name.to_s 781: file_name = file_name.singularize if ActiveRecord::Base.pluralize_table_names 782: try_to_load_dependency(file_name) 783: end 784: end
# File activerecord/lib/active_record/fixtures.rb, line 786 786: def setup_fixture_accessors(fixture_names = nil) 787: fixture_names = Array.wrap(fixture_names || fixture_table_names) 788: methods = Module.new do 789: fixture_names.each do |fixture_name| 790: fixture_name = fixture_name.to_s.tr('./', '_') 791: 792: define_method(fixture_name) do |*fixtures| 793: force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload 794: 795: @fixture_cache[fixture_name] ||= {} 796: 797: instances = fixtures.map do |fixture| 798: @fixture_cache[fixture_name].delete(fixture) if force_reload 799: 800: if @loaded_fixtures[fixture_name][fixture.to_s] 801: ActiveRecord::IdentityMap.without do 802: @fixture_cache[fixture_name][fixture] ||= @loaded_fixtures[fixture_name][fixture.to_s].find 803: end 804: else 805: raise StandardError, "No fixture with name '#{fixture}' found for table '#{fixture_name}'" 806: end 807: end 808: 809: instances.size == 1 ? instances.first : instances 810: end 811: private fixture_name 812: end 813: end 814: include methods 815: end
# File activerecord/lib/active_record/fixtures.rb, line 766 766: def try_to_load_dependency(file_name) 767: require_dependency file_name 768: rescue LoadError => e 769: # Let's hope the developer has included it himself 770: 771: # Let's warn in case this is a subdependency, otherwise 772: # subdependency error messages are totally cryptic 773: if ActiveRecord::Base.logger 774: ActiveRecord::Base.logger.warn("Unable to load #{file_name}, underlying cause #{e.message} \n\n #{e.backtrace.join("\n")}") 775: end 776: end