Sha256: e7a189858fc3255ac38881572adfe1819b63ed9c63d8b758df47ac23e4538d8a

Contents?: true

Size: 723 Bytes

Versions: 5

Compression:

Stored size: 723 Bytes

Contents

# frozen_string_literal: true

require_relative './base_processor'
require_relative './paginate/enumerable_adapter'
require_relative './paginate/active_record_adapter'

class ActiveSet
  class PaginateProcessor < BaseProcessor
    queue_adapter ActiveRecordAdapter
    queue_adapter EnumerableAdapter

    def process
      adapters.each do |adapter|
        output = adapter.new(@set, instruction).process

        return output[:set] if output[:processed]
      end

      @set
    end

    private

    def instruction
      Instructions::Entry.new(page_number, page_size)
    end

    def page_number
      @instructions.get(:page) || 1
    end

    def page_size
      @instructions.get(:size) || 25
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
activeset-0.5.8 lib/active_set/processors/paginate_processor.rb
activeset-0.5.7 lib/active_set/processors/paginate_processor.rb
activeset-0.5.6 lib/active_set/processors/paginate_processor.rb
activeset-0.5.5 lib/active_set/processors/paginate_processor.rb
activeset-0.5.4 lib/active_set/processors/paginate_processor.rb