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