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