class Phoenx::Cli::Command

Attributes

base_command[RW]
description[RW]
name[RW]
usage[RW]

Public Class Methods

new(name, description, &block) click to toggle source
# File lib/phoenx/cli/command.rb, line 18
def initialize(name, description, &block)
        @name = name
        @description = description
        @block = block
        @options = []
        @commands = []
end

Public Instance Methods

add_command(command) click to toggle source
# File lib/phoenx/cli/command.rb, line 30
def add_command(command)
        @commands << command
end
add_option(option) click to toggle source
# File lib/phoenx/cli/command.rb, line 26
def add_option(option)
        @options << option
end
parse(args) click to toggle source
# File lib/phoenx/cli/command.rb, line 34
def parse(args)
        args_tmp = args.dup
        if args_tmp.empty?
                @block.call self
        else
                args_tmp.each do |arg|
                        @commands.each do |command|
                                if arg == command.name
                                        args_tmp.delete(arg)
                                        command.parse(args_tmp)
                                end
                        end
                        @options.each do |option|
                                if arg == option.name || arg == option.short_cut
                                        args_tmp.delete(arg)                    
                                        option.execute
                                end
                        end
                end
        end
        unless args_tmp.empty?
                error = "Unknown arguments: "
                args_tmp.each do |arg|
                        error += arg + " "
                end
                puts error
                print
                exit
        end
end
print() click to toggle source

Private Instance Methods

whitespace(message) click to toggle source
# File lib/phoenx/cli/command.rb, line 103
def whitespace(message)
        count = @@indent - message.length
        i = 0
        result = ""
        until count == i do
                result << " "
                i += 1
        end
        return result
end