Sha256: abb87c929349828a5b5f00a26fa665b9913e81cc3c4f1d94a9f9f9778836bbab

Contents?: true

Size: 1.04 KB

Versions: 23

Compression:

Stored size: 1.04 KB

Contents

# encoding: utf-8

module Github

  # A module that adds http get request to response pagination
  module PagedRequest
    include Github::Constants

    FIRST_PAGE = 1 # Default request page if none provided

    PER_PAGE   = 30 # Default number of items as specified by API

    NOT_FOUND  = -1 # Either page or per_page parameter not present

    # Check if current api instance has default per_page param set,
    # otherwise use global default.
    #
    def default_page_size
      current_api.per_page ? current_api.per_page : PER_PAGE
    end

    def default_page
      current_api.page ? current_api.page : FIRST_PAGE
    end

    # Perform http get request with pagination parameters
    #
    def page_request(path, params={})
      if params[PARAM_PER_PAGE] == NOT_FOUND
        params[PARAM_PER_PAGE] = default_page_size
      end
      if params[PARAM_PAGE] && params[PARAM_PAGE] == NOT_FOUND
        params[PARAM_PAGE] = default_page
      end

      current_api.get_request(path, ParamsHash.new(params))
    end

  end # PagedRequest
end # Github

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
github_api-0.17.0 lib/github_api/paged_request.rb
github_api-0.16.0 lib/github_api/paged_request.rb
github_api-0.15.0 lib/github_api/paged_request.rb
github_api-0.14.5 lib/github_api/paged_request.rb
github_api-0.14.4 lib/github_api/paged_request.rb
github_api-0.14.3 lib/github_api/paged_request.rb
github_api-0.14.2 lib/github_api/paged_request.rb
github_api-0.14.1 lib/github_api/paged_request.rb
github_api-0.14.0 lib/github_api/paged_request.rb
github_api-0.13.1 lib/github_api/paged_request.rb
github_api-0.13.0 lib/github_api/paged_request.rb
github_api-0.12.4 lib/github_api/paged_request.rb
github_api-0.12.3 lib/github_api/paged_request.rb
github_api-0.12.2 lib/github_api/paged_request.rb
github_api-0.12.1 lib/github_api/paged_request.rb
github_api-0.12.0 lib/github_api/paged_request.rb
github_api-0.11.3 lib/github_api/paged_request.rb
github_api-0.11.2 lib/github_api/paged_request.rb
github_api-0.11.1 lib/github_api/paged_request.rb
github_api-0.11.0 lib/github_api/paged_request.rb