Suggest:

    def to_return
      (limited? && batch_size >= remaining_limit) ? remaining_limit : batch_size
    end