def find_action(argv)
      3.downto(1).each do |count|
        next unless argv.size >= count 
        action = argv[0..count-1].join('_').to_sym
        return action if @actions.has_key? action
      end
      return :global if @actions.has_key? :global 
      return "#{superspace}_global".to_sym if @superspace and @actions.has_key? "#{superspace}_global".to_sym
      return false
    end
def find_action(argv)
      3.downto(1).each do |count|
        next unless argv.size >= count 
        action = argv[0..count-1].join('_').to_sym
        return action if @actions.has_key? action
      end
      return :global if @actions.has_key? :global 
      return "#{superspace}_global".to_sym if @superspace and @actions.has_key? "#{superspace}_global".to_sym
      return false
    end
Inspect the first three arguments in the argv and look for
 a matching action.
 We will first look for a_b_c action, then for a_b and
 finally for a. This is intended to allow "overloading" of
 the command as an action (e.g. also allow a global action
 called 'a').
 if no command was found, but we have a :global command,
 assume this is the requested one (since we will not reach
 this point unless the usage pattern matches).