mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
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
This commit is contained in:
parent
a677da209b
commit
9a97cb25eb
2 changed files with 11 additions and 3 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Added lazy typing for generate, such that ./script/generate cn == ./script/generate controller and the likes #1051 [k@v2studio.com]
|
||||
|
||||
* Fixed that ownership is brought over in pg_dump during tests for PostgreSQL #1060 [pburleson@gmail.com]
|
||||
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in a new issue