diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-10 17:36:57 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-04-10 17:36:57 +0000 |
commit | 9a97cb25eb37c2cf9eb3ab4b0c4350db0bf66678 (patch) | |
tree | 3c2ff4fe4836e2d5b8178bdcd582449dfa801c18 /railties/lib/rails_generator/lookup.rb | |
parent | a677da209b16f43198b3485dda89dce862fb9bfb (diff) | |
download | rails-9a97cb25eb37c2cf9eb3ab4b0c4350db0bf66678.tar.gz rails-9a97cb25eb37c2cf9eb3ab4b0c4350db0bf66678.tar.bz2 rails-9a97cb25eb37c2cf9eb3ab4b0c4350db0bf66678.zip |
Added lazy typing for generate, such that ./script/generate cn == ./script/generate controller and the likes #1051 [k@v2studio.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1137 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/rails_generator/lookup.rb')
-rw-r--r-- | railties/lib/rails_generator/lookup.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/railties/lib/rails_generator/lookup.rb b/railties/lib/rails_generator/lookup.rb index 00b78ce645..538e0f55ea 100644 --- a/railties/lib/rails_generator/lookup.rb +++ b/railties/lib/rails_generator/lookup.rb @@ -109,9 +109,15 @@ module Rails def lookup(generator_name) @found ||= {} generator_name = generator_name.to_s.downcase - @found[generator_name] ||= cache.find { |spec| - spec.name == generator_name - } or raise GeneratorError, "Couldn't find '#{generator_name}' generator" + @found[generator_name] ||= cache.find { |spec| spec.name == generator_name } + unless @found[generator_name] + chars = generator_name.scan(/./).map{|c|"#{c}.*?"} + rx = /^#{chars}$/ + gns = cache.select{|spec| spec.name =~ rx } + @found[generator_name] ||= gns.first if gns.length == 1 + raise GeneratorError, "Pattern '#{generator_name}' matches more than one generator: #{gns.map{|sp|sp.name}.join(', ')}" if gns.length > 1 + end + @found[generator_name] or raise GeneratorError, "Couldn't find '#{generator_name}' generator" end # Convenience method to lookup and instantiate a generator. |