Skip to content
Browse files

Allow task loading from Rakefile for gems (plugin installation alread…

…y auto-detects). Add skip_on_db_migrate option as well for people that don't want it.
  • Loading branch information...
1 parent 672a22a commit da365eabe514c4c424bffc0de383c222fc956c3e @ijcd ijcd committed Dec 20, 2011
Showing with 26 additions and 8 deletions.
  1. +16 −4 README.rdoc
  2. +6 −0 lib/annotate/tasks.rb
  3. +4 −4 tasks/migrate.rake
View
20 README.rdoc
@@ -40,8 +40,7 @@ Also, if you pass the -r option, it'll annotate routes.rb with the output of "ra
Into Gemfile from Github:
- gem 'annotate', :git => 'git://github.com/ctran/annotate_models.git'
-
+ gem 'annotate', :git => 'git://github.com/ctran/annotate_models.git'
Into environment gems From Rubygems.org:
@@ -54,7 +53,6 @@ Into environment gems from Github checkout:
rake build
sudo gem install pkg/annotate-*.gem
-
== USAGE
(If you used the Gemfile install, prefix the below commands with `bundle exec`.)
@@ -83,7 +81,21 @@ To automatically annotate after running 'rake db:migrate':
If you install annotate_models as a plugin, it will automatically
adjust your <tt>rake db:migrate</tt> tasks so that they update the
annotations in your model files for you once the migration is
-completed.
+completed. To get the same behavior from a gem, add the following to
+your Rakefile:
+
+ require 'annotate/tasks'
+
+To customize the behavior of annotate when it is running as a Rake
+task, use the following (in your Rakefile or wherever):
+
+ ENV['position_in_class'] = "before"
+ ENV['position_in_fixture'] = "before"
+ ENV['show_indexes'] = "false"
+ ENV['include_version'] = "false"
+ ENV['exclude_tests'] = "false"
+ ENV['exclude_fixtures'] = "false"
+ ENV['skip_on_db_migrate'] = "false"
== OPTIONS
View
6 lib/annotate/tasks.rb
@@ -0,0 +1,6 @@
+require 'rubygems'
+require 'rake'
+
+# Make tasks visible for Rails also when used as gem.
+Dir[File.join(File.dirname(__FILE__), '..', 'tasks', '**/*.rake')].each { |rake| load rake }
+Dir[File.join(File.dirname(__FILE__), '..', '..', 'tasks', '**/*.rake')].each { |rake| load rake }
View
8 tasks/migrate.rake
@@ -13,9 +13,9 @@ namespace :db do
namespace :migrate do
[:change, :up, :down, :reset, :redo].each do |t|
task t do
- Annotate::Migration.update_annotations
+ Annotate::Migration.update_annotations
end
- end
+ end
end
end
@@ -24,9 +24,9 @@ module Annotate
@@working = false
def self.update_annotations
- unless @@working
+ unless @@working || (ENV['skip_on_db_migrate'] =~ /(true|t|yes|y|1)$/i)
@@working = true
- Rake::Task['annotate_models'].invoke
+ Rake::Task['annotate_models'].invoke
end
end
end

0 comments on commit da365ea

Please sign in to comment.
Something went wrong with that request. Please try again.