Sha256: 3d4ff9af34b45a2f759aa56a12e9c1d5323cdfe0c767f980dd3ba8ef07060c24

Contents?: true

Size: 1 KB

Versions: 8

Compression:

Stored size: 1 KB

Contents

require 'hanami/view'
require 'will_paginate/view_helpers'
require 'will_paginate/view_helpers/link_renderer'

module WillPaginate
  module Hanami
    module Helpers
      include ViewHelpers

      def will_paginate(collection, options = {}) #:nodoc:
        options = options.merge(:renderer => LinkRenderer) unless options[:renderer]
        str = super(collection, options)
        str && raw(str)
      end
    end

    class LinkRenderer < ViewHelpers::LinkRenderer
      protected

      def url(page)
        str = File.join(request_env['SCRIPT_NAME'].to_s, request_env['PATH_INFO'])
        params = request_env['rack.request.query_hash'].merge(param_name.to_s => page.to_s)
        params.update @options[:params] if @options[:params]
        str << '?' << build_query(params)
      end

      def request_env
        @template.params.env
      end

      def build_query(params)
        Rack::Utils.build_nested_query params
      end
    end

    def self.included(base)
      base.include Helpers
    end

  end
end

Version data entries

8 entries across 7 versions & 2 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.1.0/gems/will_paginate-4.0.1/lib/will_paginate/view_helpers/hanami.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/will_paginate-4.0.1/lib/will_paginate/view_helpers/hanami.rb
will_paginate-4.0.1 lib/will_paginate/view_helpers/hanami.rb
will_paginate-4.0.0 lib/will_paginate/view_helpers/hanami.rb
will_paginate-3.3.1 lib/will_paginate/view_helpers/hanami.rb
will_paginate-3.3.0 lib/will_paginate/view_helpers/hanami.rb
will_paginate-3.2.1 lib/will_paginate/view_helpers/hanami.rb
will_paginate-3.2.0 lib/will_paginate/view_helpers/hanami.rb