You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: nested_param_paginator.rb
    path of file: ./repos/json_api_client/lib/json_api_client/paginating
    
    the code of the file until where you have to start completion: module JsonApiClient
  module Paginating
    # An alternate, more consistent Paginator that always wraps
    # pagination query string params in a top-level wrapper_name,
    # e.g. page[offset]=2, page[limit]=10.
    class NestedParamPaginator
      DEFAULT_WRAPPER_NAME = "page".freeze
      DEFAULT_PAGE_PARAM = "page".freeze
      DEFAULT_PER_PAGE_PARAM = "per_page".freeze

      # Define class accessors as methods to enforce standard way
      # of defining pagination related query string params.
      class << self

        def wrapper_name
          @_wrapper_name ||= DEFAULT_WRAPPER_NAME
        end

        def wrapper_name=(param = DEFAULT_WRAPPER_NAME)
          raise ArgumentError, "don't wrap wrapper_name" unless
    
      def total_count; total_entries; end

      def offset
        per_page * (current_page - 1)
      end

      def per_page
        params.fetch(per_page_param) do
          result_set.length
        end.to_i
      end

      def current_page
        params.fetch(page_param, 1).to_i
      end

      def out_of_bounds?
        current_page > total_pages
      end

      def previous_page
        current_page > 1 ? (current_page - 1) : nil
      end

      def next_page
        current_page < total_pages ? (current_page + 1) : nil
      end

      def page_param
        self.class.page_param
      end

      def per_page_param
        self.class.per_page_param
      end

      alias limit_value per_page

      protected

      def params_for_uri(uri)
        return {} unless uri
        uri = Addressable::URI.parse(uri)
        ( uri.query_values || {} ).with_indifferent_access
      end
    end
  end