From 58aa8f0833f0ffa8e8ffe6c775c960a4eca515cc Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Tue, 18 Aug 2015 14:33:43 +0200 Subject: [PATCH] Boolean support for Conversion.to_float --- lib/oga/xpath/conversion.rb | 8 +++++++- spec/oga/xpath/conversion_spec.rb | 12 ++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/oga/xpath/conversion.rb b/lib/oga/xpath/conversion.rb index 1146427..c3709cc 100644 --- a/lib/oga/xpath/conversion.rb +++ b/lib/oga/xpath/conversion.rb @@ -63,7 +63,13 @@ module Oga value = value.text end - Float(value) rescue Float::NAN + if value == true + 1.0 + elsif value == false + 0.0 + else + Float(value) rescue Float::NAN + end end # @return [TrueClass|FalseClass] diff --git a/spec/oga/xpath/conversion_spec.rb b/spec/oga/xpath/conversion_spec.rb index 6737b62..2b0ad5a 100644 --- a/spec/oga/xpath/conversion_spec.rb +++ b/spec/oga/xpath/conversion_spec.rb @@ -182,6 +182,18 @@ describe Oga::XPath::Conversion do described_class.to_float(nil).should be_nan end end + + describe 'using a TrueClass' do + it 'returns 1.0' do + described_class.to_float(true).should == 1.0 + end + end + + describe 'using a FalseClass' do + it 'returns 0.0' do + described_class.to_float(false).should == 0.0 + end + end end describe 'to_boolean' do