class SocialSnippet::CommandLine::SSpm::MainCommand

Attributes

sub_commands[R]

Public Class Methods

new(new_args, new_streams = {}) click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 7
def initialize(new_args, new_streams = {})
  super
  @sub_commands = SSpm::SubCommands.all
end

Public Instance Methods

define_options() click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 12
def define_options
end
run() click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 24
def run
  if has_subcommand?
    command_name = args.shift
    find_subcommand command_name
  else
    help
  end
end
usage() click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 15
    def usage
      <<EOF
Usage: sspm <command> [options] [--]

Commands:
#{usage_subcommands}
EOF
    end

Private Instance Methods

call_subcommand(sym) click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 55
def call_subcommand(sym)
  cli = SSpm::SubCommands.const_get(sym).new(args)
  cli.init
  cli.run
end
find_subcommand(command_name) click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 46
def find_subcommand(command_name)
  sub_command_sym = to_command_class_sym(command_name)
  if sub_commands.include?(sub_command_sym)
    call_subcommand(sub_command_sym)
  else
    help
  end
end
usage_subcommands() click to toggle source
# File lib/social_snippet/command_line/sspm/main_command.rb, line 35
def usage_subcommands
  sub_commands.sort.map do |sub_command_sym|
    {
      :sym => sub_command_sym,
      :instance => SSpm::SubCommands.const_get(sub_command_sym).new(args),
    }
  end.map do |sub_command|
    "    #{to_command_name(sub_command[:sym])}\t#{sub_command[:instance].desc}"
  end.join($/)
end