# File lib/active_record/fixtures.rb, line 850 850: def fixtures(*table_names) 851: if table_names.first == :all 852: table_names = Dir["#{fixture_path}/**/*.{yml,csv}"] 853: table_names.map! { |f| f[(fixture_path.size + 1)..5] } 854: else 855: table_names = table_names.flatten.map { |n| n.to_s } 856: end 857: 858: self.fixture_table_names |= table_names 859: require_fixture_classes(table_names) 860: setup_fixture_accessors(table_names) 861: end
# File lib/active_record/fixtures.rb, line 875 875: def require_fixture_classes(table_names = nil) 876: (table_names || fixture_table_names).each do |table_name| 877: file_name = table_name.to_s 878: file_name = file_name.singularize if ActiveRecord::Base.pluralize_table_names 879: try_to_load_dependency(file_name) 880: end 881: end
# File lib/active_record/fixtures.rb, line 846 846: def set_fixture_class(class_names = {}) 847: self.fixture_class_names = self.fixture_class_names.merge(class_names) 848: end
# File lib/active_record/fixtures.rb, line 883 883: def setup_fixture_accessors(table_names = nil) 884: table_names = Array.wrap(table_names || fixture_table_names) 885: table_names.each do |table_name| 886: table_name = table_name.to_s.tr('./', '_') 887: 888: redefine_method(table_name) do |*fixtures| 889: force_reload = fixtures.pop if fixtures.last == true || fixtures.last == :reload 890: 891: @fixture_cache[table_name] ||= {} 892: 893: instances = fixtures.map do |fixture| 894: @fixture_cache[table_name].delete(fixture) if force_reload 895: 896: if @loaded_fixtures[table_name][fixture.to_s] 897: @fixture_cache[table_name][fixture] ||= @loaded_fixtures[table_name][fixture.to_s].find 898: else 899: raise StandardError, "No fixture with name '#{fixture}' found for table '#{table_name}'" 900: end 901: end 902: 903: instances.size == 1 ? instances.first : instances 904: end 905: private table_name 906: end 907: end
# File lib/active_record/fixtures.rb, line 863 863: def try_to_load_dependency(file_name) 864: require_dependency file_name 865: rescue LoadError => e 866: # Let's hope the developer has included it himself 867: 868: # Let's warn in case this is a subdependency, otherwise 869: # subdependency error messages are totally cryptic 870: if ActiveRecord::Base.logger 871: ActiveRecord::Base.logger.warn("Unable to load #{file_name}, underlying cause #{e.message} \n\n #{e.backtrace.join("\n")}") 872: end 873: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.