# File lib/fastri/ri_service.rb, line 197
  def info(keyw, options = {})
    options = DEFAULT_INFO_OPTIONS.merge(options)
    return nil if keyw.strip.empty?
    descriptor = NameDescriptor.new(keyw)
    entries = obtain_entries(descriptor, options)

    case entries.size
    when 0; nil
    when 1
      case entries[0].type
      when :namespace
        capture_stdout(display(options)) do |display|
          display.display_class_info(@ri_reader.get_class(entries[0]), @ri_reader)
          if options[:extended]
            methods = @ri_reader.methods_under(entries[0], true)
            methods.each do |meth_entry|
              display.display_method_info(@ri_reader.get_method(meth_entry))
            end
          end
        end
      when :method
        capture_stdout(display(options)) do |display|
          display.display_method_info(@ri_reader.get_method(entries[0]))
        end
      end
    else
      capture_stdout(display(options)) do |display|
        formatter = display.formatter
        formatter.draw_line("Multiple choices:")
        formatter.blankline
        formatter.wrap(entries.map{|x| x.full_name}.join(", "))
        entries.each do |entry|
          display.display_method_info(@ri_reader.get_method(entry)) if entry.type == :method
        end if options[:expand_choices]
      end
    end
  rescue RiError
    return nil
  end