Sparkle: Ensure empty strings become nil

Sometimes appcasts contain empty elements/attributes and the `Item`
values end up as an empty string because of how they're handled in
`#items_from_content`. It's reasonable to expect that empty values
would be `nil` instead, so this adds `#presence` calls to ensure this
is the case.
This commit is contained in:
Sam Ford 2023-11-08 09:06:24 -05:00
parent 25d1f1064a
commit 4f469234d0
No known key found for this signature in database
GPG Key ID: 7AF5CBEE1DD6F76D

View File

@ -86,19 +86,19 @@ module Homebrew
enclosure = item.elements["enclosure"] enclosure = item.elements["enclosure"]
if enclosure if enclosure
url = enclosure["url"] url = enclosure["url"].presence
short_version = enclosure["shortVersionString"] short_version = enclosure["shortVersionString"].presence
version = enclosure["version"] version = enclosure["version"].presence
os = enclosure["os"] os = enclosure["os"].presence
end end
title = item.elements["title"]&.text&.strip title = item.elements["title"]&.text&.strip&.presence
link = item.elements["link"]&.text&.strip link = item.elements["link"]&.text&.strip&.presence
url ||= link url ||= link
channel = item.elements["channel"]&.text&.strip channel = item.elements["channel"]&.text&.strip&.presence
release_notes_link = item.elements["releaseNotesLink"]&.text&.strip release_notes_link = item.elements["releaseNotesLink"]&.text&.strip&.presence
short_version ||= item.elements["shortVersionString"]&.text&.strip short_version ||= item.elements["shortVersionString"]&.text&.strip&.presence
version ||= item.elements["version"]&.text&.strip version ||= item.elements["version"]&.text&.strip&.presence
pub_date = item.elements["pubDate"]&.text&.strip&.presence&.then do |date_string| pub_date = item.elements["pubDate"]&.text&.strip&.presence&.then do |date_string|
Time.parse(date_string) Time.parse(date_string)