def child(opts = {})
      if !opts.is_a?(Hash)
        children.find {|o| o.name == opts.to_sym }
      else
        opts = SymbolHash[opts]
        children.find do |obj|
          opts.each do |meth, value|
            break false unless value.is_a?(Array) ? value.include?(obj[meth]) : obj[meth] == value
          end
        end
      end
    end
def child(opts = {})
      if !opts.is_a?(Hash)
        children.find {|o| o.name == opts.to_sym }
      else
        opts = SymbolHash[opts]
        children.find do |obj|
          opts.each do |meth, value|
            break false unless value.is_a?(Array) ? value.include?(obj[meth]) : obj[meth] == value
          end
        end
      end
    end
Looks for a child that matches the attributes specified by +opts+.

 @example Finds a child by name and scope
   namespace.child(:name => :to_s, :scope => :instance)
   # => #<yardoc method MyClass#to_s>
 @return [Base, nil] the first matched child object, or nil