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