From 29c4922d469048c813d06cbf5ec819f1395b3edb Mon Sep 17 00:00:00 2001 From: Sebastien Rosa Date: Thu, 21 Nov 2013 15:10:44 -0500 Subject: [PATCH] Another fix on the path builder --- lib/neat_pages/helpers/builder.rb | 7 +++---- spec/neat_pages/helpers/builder_spec.rb | 9 +++++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/neat_pages/helpers/builder.rb b/lib/neat_pages/helpers/builder.rb index f22ebff..3edc33b 100644 --- a/lib/neat_pages/helpers/builder.rb +++ b/lib/neat_pages/helpers/builder.rb @@ -32,10 +32,9 @@ def li(content, css_class='', options={}) end def path_to(page) - "#{@base_url}?" + - @params.map { |k,v| "#{k}=#{v}" if k != 'page' }.compact.join('&') + - (@params.empty? ? '' : '&') + - "page=#{page}" + qs = @params.map { |k,v| "#{k}=#{v}" if k != 'page' }.compact.join('&') + + "#{@base_url}?#{qs}" + (qs.empty? ? '' : '&') + "page=#{page}" end def reset_builder diff --git a/spec/neat_pages/helpers/builder_spec.rb b/spec/neat_pages/helpers/builder_spec.rb index 432f179..2b2fd56 100644 --- a/spec/neat_pages/helpers/builder_spec.rb +++ b/spec/neat_pages/helpers/builder_spec.rb @@ -71,6 +71,15 @@ specify { builder.path_to(6).should eql 'http://www.test.dev?sort=1&filter=type&page=6' } end end + + context "and the params page=5" do + let(:request) { request_mock(host: 'www.test.dev', env: { 'action_dispatch.request.query_parameters' => { 'page' => 5 } })} + let(:builder) { NeatPages::Helpers::Builder.new(double, request) } + + context "when asking for the path_to page 6" do + specify { builder.path_to(6).should eql 'http://www.test.dev?page=6' } + end + end end end