Parent

Class/Module Index [+]

Quicksearch

RR::GenerateRunner

This class implements the functionality of the 'generate' command.

Constants

CONFIG_TEMPLATE

Attributes

options[RW]

Provided options. Possible values:

  • :config_file: path to config file

Public Class Methods

run(args) click to toggle source

Entry points for executing a processing run. args: the array of command line options that were provided by the user.

# File lib/rubyrep/generate_runner.rb, line 92
def self.run(args)
  runner = new

  status = runner.process_options(args)
  if runner.options
    runner.execute
  end
  status
end

Public Instance Methods

execute() click to toggle source

Generates a configuration file template.

# File lib/rubyrep/generate_runner.rb, line 81
def execute
  if File.exists?(options[:file_name])
    raise("Cowardly refuse to overwrite existing file '#{options[:file_name]}'")
  end
  File.open(options[:file_name], 'w') do |f|
    f.write CONFIG_TEMPLATE
  end
end
process_options(args) click to toggle source

Parses the given command line parameter array. Returns the status (as per UNIX conventions: 1 if parameters were invalid, 0 otherwise)

# File lib/rubyrep/generate_runner.rb, line 45
def process_options(args)
  status = 0
  self.options = {}

  parser = OptionParser.new do |opts|
    opts.banner = Usage: #{$0} generate [file_name]  Generates a configuration file template under name [file_name].
    opts.separator ""
    opts.separator "  Specific options:"

    opts.on_tail("--help", "Show this message") do
      $stderr.puts opts
      self.options = nil
    end
  end

  begin
    unprocessed_args = parser.parse!(args)
    if options # this will be +nil+ if the --help option is specified
      raise("Please specify the name of the configuration file") if unprocessed_args.empty?
      options[:file_name] = unprocessed_args[0]
    end
  rescue Exception => e
    $stderr.puts "Command line parsing failed: #{e}"
    $stderr.puts parser.help
    self.options = nil
    status = 1
  end

  return status
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.