К сожалению, нет никакого программного способа сделать это. Rake-задачи могут быть загружены либо из самого rails, lib / tasks, либо из любого плагина с каталогом задач.
Это должно охватывать почти все, что не находится внутри самого Rails:
find . -name "*.rake" | xargs grep "whatever"
Что касается db:schema:dump
, вот источник:
desc "Create a db/schema.rb file that can be portably used against any DB supported by AR"
task :dump => :environment do
require 'active_record/schema_dumper'
File.open(ENV['SCHEMA'] || "#{RAILS_ROOT}/db/schema.rb", "w") do |file|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
end
end
Его можно найти в строке 242 файла lib / tasks / database.rake в геме rails 2.2.2. Если у вас другая версия Rails, просто найдите «namespace :schema
».
Возможно, вы на самом деле хотите получить источник ActiveRecord::SchemaDumper
, но я думаю, вам не составит труда выяснить, где он находится. : -)