class BaseChip::Cli::Data

Attributes

current_task[RW]
default_task[RW]
map[RW]
parent_command[RW]
sub_commands[RW]
tasks[RW]

Public Class Methods

new() click to toggle source
Calls superclass method BaseChip::Cli::TaskOrData::new
# File lib/base_chip/cli.rb, line 209
def initialize
  super
  @map          = {}
  @sub_commands = {}
  @tasks        = {}
  @current_task = self
  @default_task = nil
end

Public Instance Methods

full_command(task = nil, with_options=true) click to toggle source
# File lib/base_chip/cli.rb, line 240
def full_command(task = nil, with_options=true)
  task = task.to_s if task
  n = if self.parent_command 
    self.parent_command.full_command((task.nil? ? nil : self.name),with_options)
  else
    File.basename($0)
  end
  if task
    n + ' ' + task
  else
    n
  end
end
save_task(name,prc) click to toggle source
# File lib/base_chip/cli.rb, line 217
def save_task(name,prc)
  return if self == @current_task
  @current_task.required_argument_size = 0
  @current_task.usage ||= 
    prc.parameters.map do |pa|
      case pa[0]
      when :req ; @current_task.required_argument_size += 1 ; "<#{pa[1]}>"  
      when :opt                                             ; "[#{pa[1]}]"
      when :rest                                            ; "[#{pa[1]}]+"
      end
    end.join(' ') + ' [options]'
  @current_task.name = name
  @tasks[name]       = @current_task
  @current_task      = self
end
sub_command(name,klass) click to toggle source
# File lib/base_chip/cli.rb, line 232
def sub_command(name,klass)
  @sub_commands[name]        = klass
  klass.cli.parent_command   = self
  klass.cli.name             = name
  klass.cli.description      = @current_task.description
  klass.cli.long_description = @current_task.long_description
  @current_task              = self
end