Sha256: bff3c6ee7fd80fe8e3d5646bd7e37a16952ee1ad25ec9f225c80724928d6a9dd

Contents?: true

Size: 658 Bytes

Versions: 3

Compression:

Stored size: 658 Bytes

Contents

module TorrentSearch
  class ResultTable
    include Enumerable
    extend Forwardable
    def_delegators :@table, :[], :each, :empty?

    def initialize(search_result)
      @search_result = search_result
      @table = table
    end

    private
    def headers
      ['', :name, :size, :seeders, :leechers]
    end

    def table
      table = [headers]
      counter = 0
      @search_result.each_with_object(table) do |torrent, object|
        object << [counter, *values(torrent)]
        counter += 1
      end
    end

    def values(torrent)
      meths = headers.dup.tap {|ary|ary.shift}
      meths.map {|meth|torrent.send meth}
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
torrent_search-0.0.3 lib/torrent_search/result_table.rb
torrent_search-0.0.2 lib/torrent_search/result_table.rb
torrent_search-0.0.1 lib/torrent_search/result_table.rb