Method: Rails::Generator::Scripts::Base#run

Defined in:
lib/rails_generator/scripts.rb

#run(args = [], runtime_options = {}) ⇒ Object

Run the generator script. Takes an array of unparsed arguments and a hash of parsed arguments, takes the generator as an option or first remaining argument, and invokes the requested command.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rails_generator/scripts.rb', line 17

def run(args = [], runtime_options = {})
  begin
    parse!(args.dup, runtime_options)
  rescue OptionParser::InvalidOption => e
    # Don't cry, script. Generators want what you think is invalid.
  end

  # Generator name is the only required option.
  unless options[:generator]
    usage if args.empty?
    options[:generator] ||= args.shift
  end

  # Look up generator instance and invoke command on it.
  Rails::Generator::Base.instance(options[:generator], args, options).command(options[:command]).invoke!
rescue => e
  puts e
  puts "  #{e.backtrace.join("\n  ")}\n" if options[:backtrace]
  raise SystemExit
end