diff options
author | Jon Leighton <j@jonathanleighton.com> | 2013-12-04 01:13:27 -0800 |
---|---|---|
committer | Jon Leighton <j@jonathanleighton.com> | 2013-12-04 01:13:27 -0800 |
commit | 6f72a6b53afda51a73af69194ed0060ea5048fa9 (patch) | |
tree | db7fe1fc64a7e75cf0ad9e66b9f6e159743d5301 /railties/lib | |
parent | a25cb53939f7625c570a5082a583104f6d74d19a (diff) | |
parent | df50e3064abc3099adc524f381ffced0dab84869 (diff) | |
download | rails-6f72a6b53afda51a73af69194ed0060ea5048fa9.tar.gz rails-6f72a6b53afda51a73af69194ed0060ea5048fa9.tar.bz2 rails-6f72a6b53afda51a73af69194ed0060ea5048fa9.zip |
Merge pull request #12958 from jonleighton/spring
Install Spring preloader when generating new applications
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/generators/app_base.rb | 26 | ||||
-rw-r--r-- | railties/lib/rails/generators/rails/app/app_generator.rb | 1 |
2 files changed, 26 insertions, 1 deletions
diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index 2022b4ed3d..5d4682f6e3 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -47,6 +47,9 @@ module Rails class_option :skip_sprockets, type: :boolean, aliases: '-S', default: false, desc: 'Skip Sprockets files' + class_option :skip_spring, type: :boolean, default: false, + desc: "Don't install Spring application preloader" + class_option :database, type: :string, aliases: '-d', default: 'sqlite3', desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})" @@ -109,6 +112,7 @@ module Rails jbuilder_gemfile_entry, sdoc_gemfile_entry, platform_dependent_gemfile_entry, + spring_gemfile_entry, @extra_entries].flatten.find_all(&@gem_filter) end @@ -365,6 +369,12 @@ module Rails end end + def spring_gemfile_entry + return [] unless spring_install? + comment = 'Spring speeds up development by keeping your application running in the background. Read more: https://github.com/jonleighton/spring' + GemfileEntry.new('spring', nil, comment, group: :development) + end + def bundle_command(command) say_status :run, "bundle #{command}" @@ -388,8 +398,22 @@ module Rails end end + def bundle_install? + !(options[:skip_gemfile] || options[:skip_bundle] || options[:pretend]) + end + + def spring_install? + !options[:skip_spring] && Process.respond_to?(:fork) + end + def run_bundle - bundle_command('install') unless options[:skip_gemfile] || options[:skip_bundle] || options[:pretend] + bundle_command('install') if bundle_install? + end + + def generate_spring_binstubs + if bundle_install? && spring_install? + bundle_command("exec spring binstub --all") + end end def empty_directory_with_keep_file(destination, config = {}) diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index a2023886cd..87556bd609 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -237,6 +237,7 @@ module Rails public_task :run_bundle public_task :replay_template + public_task :generate_spring_binstubs protected |