def meths(opts = {})
      opts = SymbolHash[
        :visibility => [:public, :private, :protected],
        :scope => [:class, :instance],
        :included => true
      ].update(opts)

      opts[:visibility] = [opts[:visibility]].flatten
      opts[:scope] = [opts[:scope]].flatten

      ourmeths = children.select do |o|
        o.is_a?(MethodObject) &&
          opts[:visibility].include?(o.visibility) &&
          opts[:scope].include?(o.scope)
      end

      ourmeths + (opts[:included] ? included_meths(opts) : [])
    end
def meths(opts = {})
      opts = SymbolHash[
        :visibility => [:public, :private, :protected],
        :scope => [:class, :instance],
        :included => true
      ].update(opts)

      opts[:visibility] = [opts[:visibility]].flatten
      opts[:scope] = [opts[:scope]].flatten

      ourmeths = children.select do |o|
        o.is_a?(MethodObject) &&
          opts[:visibility].include?(o.visibility) &&
          opts[:scope].include?(o.scope)
      end

      ourmeths + (opts[:included] ? included_meths(opts) : [])
    end
Returns all methods that match the attributes specified by +opts+. If
 no options are provided, returns all methods.

 @example Finds all private and protected class methods
   namespace.meths(:visibility => [:private, :protected], :scope => :class)
   # => [#<yardoc method MyClass.privmeth>, #<yardoc method MyClass.protmeth>]
 @option opts [Array<Symbol>, Symbol] :visibility ([:public, :private,
   :protected]) the visibility of the methods to list. Can be an array or
   single value.
 @option opts [Array<Symbol>, Symbol] :scope ([:class, :instance]) the
   scope of the methods to list. Can be an array or single value.
 @option opts [Boolean] :included (true) whether to include mixed in
   methods in the list.
 @return [Array<MethodObject>] a list of method objects