aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails')
-rw-r--r--railties/lib/rails/generators/actions.rb2
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb31
-rw-r--r--railties/lib/rails/test_help.rb5
3 files changed, 33 insertions, 5 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index 7e7d54e6ed..45f55a2a0a 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -243,7 +243,7 @@ module Rails
#
def route(routing_code)
log :route, routing_code
- sentinel = /\.routes\.draw do(?:\s*\|map\|)?\s*$/
+ sentinel = /\.routes\.draw do\s*$/
in_root do
inject_into_file 'config/routes.rb', "\n #{routing_code}\n", { :after => sentinel, :verbose => false }
diff --git a/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb b/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
index cd7d51e628..0e900a34bb 100644
--- a/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
+++ b/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
@@ -133,6 +133,16 @@ task :default => :test
end
chmod "script", 0755, :verbose => false
end
+
+ def gemfile_entry
+ return unless inside_application?
+
+ gemfile_in_app_path = File.join(rails_app_path, "Gemfile")
+ if File.exist? gemfile_in_app_path
+ entry = "gem '#{name}', :path => '#{relative_path}'"
+ append_file gemfile_in_app_path, entry
+ end
+ end
end
module Generators
@@ -153,6 +163,10 @@ task :default => :test
class_option :skip_gemspec, :type => :boolean, :default => false,
:desc => "Skip gemspec file"
+ class_option :skip_gemfile_entry, :type => :boolean, :default => false,
+ :desc => "If creating plugin in application's directory " +
+ "skip adding entry to Gemfile"
+
def initialize(*args)
raise Error, "Options should be given after the plugin name. For details run: rails plugin --help" if args[0].blank?
@@ -208,6 +222,10 @@ task :default => :test
create_dummy_app
end
+ def update_gemfile
+ build(:gemfile_entry) unless options[:skip_gemfile_entry]
+ end
+
def finish_template
build(:leftovers)
end
@@ -313,6 +331,19 @@ end
def mute(&block)
shell.mute(&block)
end
+
+ def rails_app_path
+ APP_PATH.sub("/config/application", "") if defined?(APP_PATH)
+ end
+
+ def inside_application?
+ rails_app_path && app_path =~ /^#{rails_app_path}/
+ end
+
+ def relative_path
+ return unless inside_application?
+ app_path.sub(/^#{rails_app_path}\//, '')
+ end
end
end
end
diff --git a/railties/lib/rails/test_help.rb b/railties/lib/rails/test_help.rb
index 4455d92d69..11e4353c87 100644
--- a/railties/lib/rails/test_help.rb
+++ b/railties/lib/rails/test_help.rb
@@ -10,10 +10,7 @@ require 'action_dispatch/testing/integration'
# Enable turn if it is available
begin
require 'turn'
-
- if MiniTest::Unit.respond_to?(:use_natural_language_case_names=)
- MiniTest::Unit.use_natural_language_case_names = true
- end
+ MiniTest::Unit.use_natural_language_case_names = true
rescue LoadError
end