From df50e3064abc3099adc524f381ffced0dab84869 Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Sat, 2 Nov 2013 18:25:02 +0000 Subject: Install Spring preloader when generating new applications --- railties/lib/rails/generators/app_base.rb | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'railties/lib/rails/generators/app_base.rb') 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 = {}) -- cgit v1.2.3 From 15ad57311ca31dfadde3541db53ae97b5f2ef2df Mon Sep 17 00:00:00 2001 From: Takayuki Matsubara Date: Fri, 20 Dec 2013 12:02:20 +0900 Subject: Use sass-rails 4.0.1 --- railties/lib/rails/generators/app_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/generators/app_base.rb') diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index 5d4682f6e3..bbf7530091 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -308,7 +308,7 @@ module Rails 'Use SCSS for stylesheets') else gems << GemfileEntry.version('sass-rails', - '~> 4.0.0.rc1', + '~> 4.0.1', 'Use SCSS for stylesheets') end -- cgit v1.2.3 From e1aaa2ff73f78db89721eee2517eeb689f84a5a1 Mon Sep 17 00:00:00 2001 From: Pavel Pravosud Date: Fri, 20 Dec 2013 10:35:32 -0500 Subject: Bump Jbuilder version to 2.0.0 --- railties/lib/rails/generators/app_base.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'railties/lib/rails/generators/app_base.rb') diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index bbf7530091..3305a57b62 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -329,7 +329,7 @@ module Rails def jbuilder_gemfile_entry comment = 'Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder' - GemfileEntry.version('jbuilder', '~> 1.2', comment) + GemfileEntry.version('jbuilder', '~> 2.0', comment) end def sdoc_gemfile_entry -- cgit v1.2.3 From 2875b4a66e38e4333da887a4afbed33358999298 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 8 Jan 2014 15:06:53 -0800 Subject: add a more restricted codepath for templates fixes #13390 --- railties/lib/rails/generators/app_base.rb | 34 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) (limited to 'railties/lib/rails/generators/app_base.rb') diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index 3305a57b62..4988602aea 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -14,6 +14,7 @@ module Rails DATABASES.concat(JDBC_DATABASES) attr_accessor :rails_template + attr_accessor :app_template add_shebang_option! argument :app_path, type: :string @@ -26,6 +27,9 @@ module Rails class_option :template, type: :string, aliases: '-m', desc: "Path to some #{name} template (can be a filesystem path or URL)" + class_option :app_template, type: :string, aliases: '-n', + desc: "Path to some #{name} template (can be a filesystem path or URL)" + class_option :skip_gemfile, type: :boolean, default: false, desc: "Don't create a Gemfile" @@ -122,6 +126,10 @@ module Rails }.curry[@gem_filter] end + def remove_gem(name) + add_gem_entry_filter { |gem| gem.name != name } + end + def builder @builder ||= begin builder_class = get_builder_class @@ -162,6 +170,10 @@ module Rails @target.send :add_gem_entry_filter, *args, &block end + def remove_gem(*args, &block) + @target.send :remove_gem, *args, &block + end + def method_missing(name, *args, &block) @commands << [name, args, block] end @@ -180,7 +192,8 @@ module Rails def apply_rails_template @recorder = TemplateRecorder.new self - apply(rails_template, target: @recorder) if rails_template + apply(rails_template, target: self) if rails_template + apply(app_template, target: @recorder) if app_template rescue Thor::Error, LoadError, Errno::ENOENT => e raise Error, "The template [#{rails_template}] could not be loaded. Error: #{e}" end @@ -210,13 +223,18 @@ module Rails def set_default_accessors! self.destination_root = File.expand_path(app_path, destination_root) - self.rails_template = case options[:template] - when /^https?:\/\// - options[:template] - when String - File.expand_path(options[:template], Dir.pwd) - else - options[:template] + self.rails_template = expand_template options[:template] + self.app_template = expand_template options[:app_template] + end + + def expand_template(name) + case name + when /^https?:\/\// + name + when String + File.expand_path(name, Dir.pwd) + else + name end end -- cgit v1.2.3