# File lib/rubytorrent/controller.rb, line 342
  def peer_info
    @peers.map do |p|
      next nil unless p.running?
      {:name => p.name, :seed => p.peer_complete?,
       :dlamt => p.dlamt, :ulamt => p.ulamt,
       :dlrate => p.dlrate, :ulrate => p.ulrate,
       :pending_send => p.pending_send, :pending_recv => p.pending_recv,
       :interested => p.interested?, :peer_interested => p.peer_interested?,
       :choking => p.choking?, :peer_choking => p.peer_choking?,
       :snubbing => p.snubbing?,
       :we_desire => @package.pieces.inject(0) do |s, piece|
          s + (!piece.complete? && p.piece_available?(piece.index) ? 1 : 0)
        end,
       :they_desire => @package.pieces.inject(0) do |s, piece|
          s + (piece.complete? && !p.piece_available?(piece.index) ? 1 : 0)
        end,
       :start_time => p.start_time
      }
    end.compact
  end