class Commands::CommandOption

Attributes

arg[RW]
commands[RW]
description[RW]
name[RW]
parent_commands[RW]

Public Class Methods

new(name, description, arg, parent_commands, commands, field_symbol=nil, pattern=nil) click to toggle source
# File lib/commands.rb, line 188
def initialize(name, description, arg, parent_commands, commands, field_symbol=nil, pattern=nil)
  @name = name
  @description = description
  @arg = arg
  @parent_commands = parent_commands
  @commands = commands
  @field_symbol = field_symbol
  @pattern = pattern
end

Public Instance Methods

attach(commands) click to toggle source
# File lib/commands.rb, line 198
def attach(commands)
  for command in commands.reverse do
    command_name = command.name.split(/\s+/).first
    if @parent_commands.include?(command_name) || @parent_commands.include?(command.class) then
      return command
    end
  end
  raise RuntimeError, "Expected argument #{name} to follow one of #{parent_commands.join(", ")}"
end