# These tasks are added to the project if you install annotate as a Rails plugin. # (They are not used to build annotate itself.)
# Append annotations to Rake tasks for ActiveRecord
, so annotate automatically gets # run after doing db:migrate.
namespace :db do
[:migrate, :rollback].each do |cmd| task cmd do Rake::Task['set_annotation_options'].invoke Annotate::Migration.update_annotations end namespace cmd do [:change, :up, :down, :reset, :redo].each do |t| task t do Rake::Task['set_annotation_options'].invoke Annotate::Migration.update_annotations end end end end
end
module Annotate
class Migration @@working = false def self.update_annotations unless @@working || Annotate.skip_on_migration? @@working = true self.update_models if Annotate.include_models? self.update_routes if Annotate.include_routes? end end def self.update_models if Rake::Task.task_defined?("annotate_models") Rake::Task["annotate_models"].invoke elsif Rake::Task.task_defined?("app:annotate_models") Rake::Task["app:annotate_models"].invoke end end def self.update_routes if Rake::Task.task_defined?("annotate_routes") Rake::Task["annotate_routes"].invoke end end end
end