From e47392b81faf9e96070379a18d525e25bd60678b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 1 Dec 2007 20:53:15 +0000 Subject: Added db:fixtures:identity as a way of locating what ID a foxy fixture was assigned (closes #10332) [jbarnette] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8248 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/lib/tasks/databases.rake | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'railties/lib') diff --git a/railties/lib/tasks/databases.rake b/railties/lib/tasks/databases.rake index 056415c501..aa347381a6 100644 --- a/railties/lib/tasks/databases.rake +++ b/railties/lib/tasks/databases.rake @@ -134,6 +134,28 @@ namespace :db do Fixtures.create_fixtures('test/fixtures', File.basename(fixture_file, '.*')) end end + + desc "Search for a fixture given a LABEL or ID." + task :identify => :environment do + require "active_record/fixtures" + + label, id = ENV["LABEL"], ENV["ID"] + raise "LABEL or ID required" if label.blank? && id.blank? + + puts %Q(The fixture ID for "#{label}" is #{Fixtures.identify(label)}.) if label + + Dir["#{RAILS_ROOT}/test/fixtures/**/*.yml"].each do |file| + if data = YAML::load(ERB.new(IO.read(file)).result) + data.keys.each do |key| + key_id = Fixtures.identify(key) + + if key == label || key_id == id.to_i + puts "#{file}: #{key} (#{key_id})" + end + end + end + end + end end namespace :schema do -- cgit v1.2.3