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"]
if enclosure
url = enclosure["url"]
short_version = enclosure["shortVersionString"]
version = enclosure["version"]
os = enclosure["os"]
url = enclosure["url"].presence
short_version = enclosure["shortVersionString"].presence
version = enclosure["version"].presence
os = enclosure["os"].presence
end
title = item.elements["title"]&.text&.strip
link = item.elements["link"]&.text&.strip
title = item.elements["title"]&.text&.strip&.presence
link = item.elements["link"]&.text&.strip&.presence
url ||= link
channel = item.elements["channel"]&.text&.strip
release_notes_link = item.elements["releaseNotesLink"]&.text&.strip
short_version ||= item.elements["shortVersionString"]&.text&.strip
version ||= item.elements["version"]&.text&.strip
channel = item.elements["channel"]&.text&.strip&.presence
release_notes_link = item.elements["releaseNotesLink"]&.text&.strip&.presence
short_version ||= item.elements["shortVersionString"]&.text&.strip&.presence
version ||= item.elements["version"]&.text&.strip&.presence
pub_date = item.elements["pubDate"]&.text&.strip&.presence&.then do |date_string|
Time.parse(date_string)