lib/quickl/command.rb in quickl-0.2.0 vs lib/quickl/command.rb in quickl-0.2.1

- old
+ new

@@ -15,9 +15,21 @@ # Returns the array of defined subcommands def subcommands @subcommands ||= [] end + # Returns a subcommand by its name, or nil + def subcommand_by_name(name) + return nil unless has_sub_commands? + look = name.split(':') + found = subcommands.find{|cmd| cmd.command_name == look.first} + if found.nil? or (look.size == 1) + return found + else + found.subcommand_by_name(look[1..-1].join(':')) + end + end + # Returns true if this command has at least one # subcommand def has_sub_commands? @subcommands and !@subcommands.empty? end