Namespace
Methods
A
B
D
F
I
M
O
P
U
Attributes
[W] options
Class Public methods
included(base)
# File rails/railties/lib/rails_generator/options.rb, line 6
def self.included(base)
  base.extend(ClassMethods)
  class << base
    if respond_to?(:inherited)
      alias_method :inherited_without_options, :inherited
    end
    alias_method :inherited, :inherited_with_options
  end
end
Instance Public methods
options()

Each instance has an options hash that’s populated by parse.

# File rails/railties/lib/rails_generator/options.rb, line 49
def options
  @options ||= {}
end
Instance Protected methods
add_general_options!(opt)

Adds general options like -h and –quiet. Usually don’t override.

# File rails/railties/lib/rails_generator/options.rb, line 119
def add_general_options!(opt)
  opt.separator ''
  opt.separator 'Rails Info:'
  opt.on('-v', '--version', 'Show the Rails version number and quit.')
  opt.on('-h', '--help', 'Show this help message and quit.') { |v| options[:help] = v }

  opt.separator ''
  opt.separator 'General Options:'

  opt.on('-p', '--pretend', 'Run but do not make any changes.') { |v| options[:pretend] = v }
  opt.on('-f', '--force', 'Overwrite files that already exist.') { options[:collision] = :force }
  opt.on('-s', '--skip', 'Skip files that already exist.') { options[:collision] = :skip }
  opt.on('-q', '--quiet', 'Suppress normal output.') { |v| options[:quiet] = v }
  opt.on('-t', '--backtrace', 'Debugging: show backtrace on errors.') { |v| options[:backtrace] = v }
  opt.on('-c', '--svn', 'Modify files with subversion. (Note: svn must be in path)') do
    options[:svn] = %xsvn status`.inject({}) do |opt, e|
      opt[e.chomp[7..-1]] = true
      opt
    end
  end
end
add_options!(opt)

Override to add your options to the parser:

def add_options!(opt)
  opt.on('-v', '--verbose') { |value| options[:verbose] = value }
end
# File rails/railties/lib/rails_generator/options.rb, line 115
def add_options!(opt)
end
banner()

Override with your own usage banner.

# File rails/railties/lib/rails_generator/options.rb, line 107
def banner
  "Usage: #{$0} [options]"
end
default_options()

Convenient access to class default options.

# File rails/railties/lib/rails_generator/options.rb, line 61
def default_options
  self.class.default_options
end
full_options(runtime_options = {})

Merge together our instance options. In increasing precedence:

default_options   (class default options)
options           (instance options)
runtime_options   (provided as argument)
mandatory_options (class mandatory options)
# File rails/railties/lib/rails_generator/options.rb, line 70
def full_options(runtime_options = {})
  self.class.full_options(options.merge(runtime_options))
end
mandatory_options()

Convenient access to class mandatory options.

# File rails/railties/lib/rails_generator/options.rb, line 56
def mandatory_options
  self.class.mandatory_options
end
parse!(args, runtime_options = {})

Parse arguments into the options hash. Classes may customize parsing behavior by overriding these methods:

#banner                 Usage: ./script/generate [options]
#add_options!           Options:
                          some options..
#add_general_options!   General Options:
                          general options..
# File rails/railties/lib/rails_generator/options.rb, line 81
def parse!(args, runtime_options = {})
  self.options = {}

  @option_parser = OptionParser.new do |opt|
    opt.banner = banner
    add_options!(opt)
    add_general_options!(opt)
    opt.parse!(args)
  end

  return args
ensure
  self.options = full_options(runtime_options)
end
usage(message = usage_message)

Raise a usage error. Override #usage_message to provide a blurb after the option parser summary.

# File rails/railties/lib/rails_generator/options.rb, line 98
def usage(message = usage_message)
  raise UsageError, "#{@option_parser}\n#{message}"
end
usage_message()
# File rails/railties/lib/rails_generator/options.rb, line 102
def usage_message
  ''
end