Generator scripts handle command-line invocation. Each script responds to an invoke! class method which handles option parsing and generator invocation.
Methods
- B
- R
- U
Included Modules
Instance Public methods
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.
Source: show
# File rails/railties/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
Instance Protected methods
Source: show
# File rails/railties/lib/rails_generator/scripts.rb, line 44 def usage_message usage = "\nInstalled Generators\n" Rails::Generator::Base.sources.each do |source| label = source.label.to_s.capitalize names = source.names usage << " #{label}: #{names.join(', ')}\n" unless names.empty? end usage << " More are available at http://rubyonrails.org/show/Generators 1. Download, for example, login_generator.zip 2. Unzip to directory #{Dir.user_home}/.rails/generators/login to use the generator with all your Rails apps " if Object.const_defined?(:RAILS_ROOT) usage << " or to #{File.expand_path(RAILS_ROOT)}/generators/login to use with this app only. " end usage << " 3. Run generate with no arguments for usage information #{$0} login Generator gems are also available: 1. gem search -r generator 2. gem install login_generator 3. #{$0} login " return usage end