Skip to content

Instantly share code, notes, and snippets.

@tcocca
Created May 11, 2010 16:17
Show Gist options
  • Select an option

  • Save tcocca/397494 to your computer and use it in GitHub Desktop.

Select an option

Save tcocca/397494 to your computer and use it in GitHub Desktop.
namespace :associations do
desc "display a models associations"
task :model => :environment do
puts "\n"
ENV['model'].constantize.reflect_on_all_associations.each do |association|
assoc_str = "#{association.macro} :#{association.name}"
unless association.options.blank?
association.options.each do |key,val|
assoc_str += ", :#{key} => #{val}" unless val.blank? || key == :extend
end
end
puts assoc_str
end
puts "\n"
end
desc "display associations for all models"
task :all => :environment do
puts "\n"
folder = File.join(RAILS_ROOT, "app", "models")
Dir[File.join(folder, "*")].each do |filename|
model_name = File.basename(filename).sub(/.rb$/, '').camelize
if model_name.constantize.respond_to?(:reflect_on_all_associations)
ENV['model'] = model_name
puts "associations for: #{model_name}"
Rake::Task["associations:model"].execute
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment