diff --git a/lib/diaspora_federation/entity.rb b/lib/diaspora_federation/entity.rb index ccaa860..3d8b74d 100644 --- a/lib/diaspora_federation/entity.rb +++ b/lib/diaspora_federation/entity.rb @@ -275,7 +275,7 @@ module DiasporaFederation private_class_method def self.entity_data(root_node) class_props.map {|name, type| value = parse_element_from_node(name, type, root_node) - [name, value] if value + [name, value] unless value.nil? }.compact.to_h end diff --git a/spec/lib/diaspora_federation/entity_spec.rb b/spec/lib/diaspora_federation/entity_spec.rb index 0411bab..1d1df67 100644 --- a/spec/lib/diaspora_federation/entity_spec.rb +++ b/spec/lib/diaspora_federation/entity_spec.rb @@ -192,6 +192,20 @@ XML expect(entity.test2).to eq("qwer") expect(entity.test3).to eq(true) end + + it "parses boolean fields with false value" do + xml = <<-XML.strip + + qwer + qwer + false + +XML + + entity = Entities::TestDefaultEntity.from_xml(Nokogiri::XML::Document.parse(xml).root) + expect(entity).to be_an_instance_of Entities::TestDefaultEntity + expect(entity.test3).to eq(false) + end end context "nested entities" do