aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
diff options
context:
space:
mode:
authorStefan Kanev <stefan.kanev@gmail.com>2014-07-31 12:05:07 +0200
committerStefan Kanev <stefan.kanev@gmail.com>2014-08-03 00:29:29 +0200
commit097b2101897af447591d00fb2809d91894572b87 (patch)
tree7e93565be3c211ce0eb8339b93e2464ecae56591 /railties/lib/rails
parentdc1a6614dca69a8ec7a368c5a0d7bc32660c1c1d (diff)
downloadrails-097b2101897af447591d00fb2809d91894572b87.tar.gz
rails-097b2101897af447591d00fb2809d91894572b87.tar.bz2
rails-097b2101897af447591d00fb2809d91894572b87.zip
Add an after_bundle callback in Rails templates
The template runs before the generation of binstubs – this does not allow to write one, that makes an initial commit to version control. It is solvable by adding an after_bundle callback.
Diffstat (limited to 'railties/lib/rails')
-rw-r--r--railties/lib/rails/generators/actions.rb11
-rw-r--r--railties/lib/rails/generators/rails/app/app_generator.rb6
2 files changed, 17 insertions, 0 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index a239874df0..4709914947 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -7,6 +7,7 @@ module Rails
def initialize(*) # :nodoc:
super
@in_group = nil
+ @after_bundle_callbacks = []
end
# Adds an entry into +Gemfile+ for the supplied gem.
@@ -232,6 +233,16 @@ module Rails
log File.read(find_in_source_paths(path))
end
+ # Registers a callback to be executed after bundle and spring binstubs
+ # have run.
+ #
+ # after_bundle do
+ # git add: '.'
+ # end
+ def after_bundle(&block)
+ @after_bundle_callbacks << block
+ end
+
protected
# Define log for backwards compatibility. If just one argument is sent,
diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb
index 188e62b6c8..9110c129d1 100644
--- a/railties/lib/rails/generators/rails/app/app_generator.rb
+++ b/railties/lib/rails/generators/rails/app/app_generator.rb
@@ -259,6 +259,12 @@ module Rails
public_task :apply_rails_template, :run_bundle
public_task :generate_spring_binstubs
+ def run_after_bundle_callbacks
+ @after_bundle_callbacks.each do |callback|
+ callback.call
+ end
+ end
+
protected
def self.banner