class SearchYJ::RecordSorter

Sort the process for each records

@author [indeep-xyz]

Attributes

rank[RW]

Public Class Methods

new(rank, logger_size) click to toggle source

Initialize myself @param rank [Integer]

The starting number of the rank of the records

@param logger_size [Integer]

The logging size of UniqueLogger

@return [type] [description]

# File lib/searchyj/record_sorter.rb, line 19
def initialize(rank, logger_size)
  @rank = rank
  initialize_logger(logger_size)
end

Public Instance Methods

initialize_logger(size) click to toggle source

Initialize the instance of UniqueLogger @param size [Integer] The logging size of UniqueLogger

@return [type] [description]

# File lib/searchyj/record_sorter.rb, line 28
def initialize_logger(size)
  @logger = UniqueLogger.new(size)
end
page_gap() click to toggle source

Return the number of page gap in the searching. And reset logger’s count.

@return [Integer]

# File lib/searchyj/record_sorter.rb, line 36
def page_gap
  @logger.failure_count(true)
end
run(records, &block) click to toggle source
# File lib/searchyj/record_sorter.rb, line 40
def run(records, &block)
  records.each do |record|
    next if @logger.add(record[:uri]) == false

    record[:rank] = @rank
    block.call(record)
    @rank += 1
  end
end