diff options
author | Stefan Kanev <stefan.kanev@gmail.com> | 2014-07-31 12:05:07 +0200 |
---|---|---|
committer | Stefan Kanev <stefan.kanev@gmail.com> | 2014-08-03 00:29:29 +0200 |
commit | 097b2101897af447591d00fb2809d91894572b87 (patch) | |
tree | 7e93565be3c211ce0eb8339b93e2464ecae56591 /railties/test | |
parent | dc1a6614dca69a8ec7a368c5a0d7bc32660c1c1d (diff) | |
download | rails-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/test')
-rw-r--r-- | railties/test/generators/app_generator_test.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 184cfc2220..3f31f89473 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -501,6 +501,21 @@ class AppGeneratorTest < Rails::Generators::TestCase end end + def test_after_bundle_callback + path = 'http://example.org/rails_template' + template = %{ after_bundle { run 'echo ran after_bundle' } } + template.instance_eval "def read; self; end" # Make the string respond to read + + generator([destination_root], template: path).expects(:open).with(path, 'Accept' => 'application/x-thor-template').returns(template) + + bundler_first = sequence('bundle, binstubs, after_bundle') + generator.expects(:bundle_command).with('install').once.in_sequence(bundler_first) + generator.expects(:bundle_command).with('exec spring binstub --all').in_sequence(bundler_first) + generator.expects(:run).with('echo ran after_bundle').in_sequence(bundler_first) + + quietly { generator.invoke_all } + end + protected def action(*args, &block) |