class Podage::Command

Attributes

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

Public Class Methods

new(name, description, &block) click to toggle source
# File lib/podage/cli/command.rb, line 39
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/podage/cli/command.rb, line 56
def add_command(command)

        @commands << command

end
add_option(option) click to toggle source
# File lib/podage/cli/command.rb, line 50
def add_option(option)

        @options << option

end
parse(args) click to toggle source
# File lib/podage/cli/command.rb, line 62
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/podage/cli/command.rb, line 185
def whitespace(message)

        count = @@indent - message.length
        i = 0
        result = ""
        
        until count == i do
        
                result << " "
                i += 1

        end
        
        return result

end