Sha256: 32a4d4ec8ad26e897487a3a6a3c515651fcdd06e848f55fd435a9353206d8fa1

Contents?: true

Size: 877 Bytes

Versions: 1

Compression:

Stored size: 877 Bytes

Contents

module Munson
  module Paginator
    class PagedPaginator
      def initialize(options={})
        @max_size = options[:max]
        @default_size = options[:default]
      end

      def set(opts={})
        number(opts[:number]) if opts[:number]
        size(opts[:size]) if opts[:size]
      end

      def to_params
        {
          page: {
            size: @size || @default_size || 10,
            number: @number
          }.compact
        }
      end

      private

      # Set number of resources per page
      #
      # @param [Fixnum] num number of resources per page
      def size(num)
        if @max_size && num > @max_size
          @size = @max_size
        else
          @size = num
        end
      end

      # Set page number
      #
      # @param [Fixnum] num page number
      def number(num)
        @number = num
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
munson-0.1.0 lib/munson/paginator/paged_paginator.rb