From ab44416906235bee78bfb46a479971ffb176e47c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Tue, 15 Oct 2019 02:47:26 +0200 Subject: [PATCH] Ensure PageNumber is serialized as JSON number Fixes #603 --- lib/will_paginate/page_number.rb | 2 +- spec/page_number_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/will_paginate/page_number.rb b/lib/will_paginate/page_number.rb index 7ac16e782..bee07e0d8 100644 --- a/lib/will_paginate/page_number.rb +++ b/lib/will_paginate/page_number.rb @@ -28,7 +28,7 @@ def to_i @value end - def_delegators :@value, :coerce, :==, :<=>, :to_s, :+, :-, :*, :/ + def_delegators :@value, :coerce, :==, :<=>, :to_s, :+, :-, :*, :/, :to_json def inspect "#{@name} #{to_i}" diff --git a/spec/page_number_spec.rb b/spec/page_number_spec.rb index 35101e777..57c144bfa 100644 --- a/spec/page_number_spec.rb +++ b/spec/page_number_spec.rb @@ -1,5 +1,6 @@ require 'spec_helper' require 'will_paginate/page_number' +require 'json' describe WillPaginate::PageNumber do describe "valid" do @@ -38,6 +39,14 @@ def num it "passes the Numeric=== type check" do |variable| (Numeric === num).should be end + + it "fails the Numeric=== type check" do |variable| + (Integer === num).should_not be + end + + it "serializes as JSON number" do + JSON.dump(page: num).should eq('{"page":12}') + end end describe "invalid" do