Skip to content

Commit 2fb219a

Browse files
committed
simplify event title HTML entity decoding
1 parent fa63fcf commit 2fb219a

2 files changed

Lines changed: 6 additions & 22 deletions

File tree

app/services/sync_service/events.rb

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,7 @@ def all_day(event)
147147
end
148148

149149
def event_title(event)
150-
if (node = event_xml_node(event)&.at_xpath("//Title"))
151-
node.text.tr("\u00A0", " ")
152-
elsif (title = event.fetch("Title", nil))
153-
CGI.unescapeHTML(title).tr("\u00A0", " ")
154-
end
150+
Nokogiri::HTML4.fragment(event.fetch("Title", "").to_s).text.tr("\u00A0", " ")
155151
end
156152

157153
def contact(event)
@@ -212,10 +208,4 @@ def stdout_and_log(message, level: :info)
212208
@log.send(level, message)
213209
# @stdout.send(level, message)
214210
end
215-
216-
def event_xml_node(event)
217-
return if event["xml"].blank?
218-
219-
Nokogiri::XML(event["xml"])
220-
end
221211
end

spec/services/sync_events_spec.rb

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,16 @@ def self.cache
3939
expect(subject["title"]).to match(@events.first["Title"])
4040
end
4141

42-
it "decodes html entities from the xml title node" do
43-
event = @events.first.merge(
44-
"Title" => "Refugees & Resettlement",
45-
"xml" => "<Event><Title>Refugees &amp; Resettlement</Title></Event>"
46-
)
42+
it "decodes html entities from the title" do
43+
event = @events.first.merge("Title" => "Refugees &amp; Resettlement")
4744

4845
expect(@sync_events.record_hash(event)["title"]).to eq("Refugees & Resettlement")
4946
end
5047

51-
it "decodes html entities from the fallback title value when xml title lookup fails" do
52-
event = @events.first.merge(
53-
"Title" => "Refugees &amp; Resettlement",
54-
"xml" => "<Event><Description>Fallback title path</Description></Event>"
55-
)
48+
it "normalizes non-breaking spaces from the title" do
49+
event = @events.first.merge("Title" => "Refugees&nbsp;and&nbsp;Resettlement")
5650

57-
expect(@sync_events.record_hash(event)["title"]).to eq("Refugees & Resettlement")
51+
expect(@sync_events.record_hash(event)["title"]).to eq("Refugees and Resettlement")
5852
end
5953

6054
it "maps Description to description field" do

0 commit comments

Comments
 (0)