aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails_generator
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2008-03-13 02:47:26 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2008-03-13 02:47:26 +0000
commitdd665ff9679514e354336bb183a9b40ad17145fb (patch)
tree4ce55421bea5fdae8d7cbed85a33fd1434dd12a8 /railties/lib/rails_generator
parente915379a102b5cecf0a9ffb26236dff3738d4dd7 (diff)
downloadrails-dd665ff9679514e354336bb183a9b40ad17145fb.tar.gz
rails-dd665ff9679514e354336bb183a9b40ad17145fb.tar.bz2
rails-dd665ff9679514e354336bb183a9b40ad17145fb.zip
Fixed that script/generate would not look for plugin generators in plugin_paths (closes #11000) [glv]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9017 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/rails_generator')
-rw-r--r--railties/lib/rails_generator/lookup.rb8
-rw-r--r--railties/lib/rails_generator/scripts.rb11
2 files changed, 13 insertions, 6 deletions
diff --git a/railties/lib/rails_generator/lookup.rb b/railties/lib/rails_generator/lookup.rb
index d88a1948a4..1f28c39d55 100644
--- a/railties/lib/rails_generator/lookup.rb
+++ b/railties/lib/rails_generator/lookup.rb
@@ -1,3 +1,5 @@
+require 'pathname'
+
require File.dirname(__FILE__) + '/spec'
class Object
@@ -104,8 +106,10 @@ module Rails
if defined? ::RAILS_ROOT
sources << PathSource.new(:lib, "#{::RAILS_ROOT}/lib/generators")
sources << PathSource.new(:vendor, "#{::RAILS_ROOT}/vendor/generators")
- sources << PathSource.new(:plugins, "#{::RAILS_ROOT}/vendor/plugins/*/**/generators")
- sources << PathSource.new(:plugins, "#{::RAILS_ROOT}/vendor/plugins/*/**/rails_generators")
+ Rails.configuration.plugin_paths.each do |path|
+ relative_path = Pathname.new(File.expand_path(path)).relative_path_from(Pathname.new(::RAILS_ROOT))
+ sources << PathSource.new(:"plugins (#{relative_path})", "#{path}/**/{,rails_}generators")
+ end
end
sources << PathSource.new(:user, "#{Dir.user_home}/.rails/generators")
if Object.const_defined?(:Gem)
diff --git a/railties/lib/rails_generator/scripts.rb b/railties/lib/rails_generator/scripts.rb
index 75167da995..f857f68de4 100644
--- a/railties/lib/rails_generator/scripts.rb
+++ b/railties/lib/rails_generator/scripts.rb
@@ -43,12 +43,15 @@ module Rails
def usage_message
usage = "\nInstalled Generators\n"
- Rails::Generator::Base.sources.inject({}) do |mem, source|
+ Rails::Generator::Base.sources.inject([]) do |mem, source|
+ # Using an association list instead of a hash to preserve order,
+ # for esthetic reasons more than anything else.
label = source.label.to_s.capitalize
- mem[label] ||= []
- mem[label] |= source.names
+ pair = mem.assoc(label)
+ mem << (pair = [label, []]) if pair.nil?
+ pair[1] |= source.names
mem
- end.each_pair do |label, names|
+ end.each do |label, names|
usage << " #{label}: #{names.join(', ')}\n" unless names.empty?
end