From 972ee2390c3fa319155ecf5740bd0aa1423a65ea Mon Sep 17 00:00:00 2001 From: "William T. Nelson" <35801+wtn@users.noreply.github.com> Date: Thu, 23 Nov 2023 21:34:54 -0600 Subject: [PATCH 1/2] rewrite if statement as case --- lib/mediainfo/tracks.rb | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/mediainfo/tracks.rb b/lib/mediainfo/tracks.rb index ae85bf0..19b5f5b 100644 --- a/lib/mediainfo/tracks.rb +++ b/lib/mediainfo/tracks.rb @@ -98,21 +98,22 @@ def self.sanitize_element_value(param) name = param[0] value = param[1] - if ['Duration'].include?(name) + case + when name == 'Duration' # Duration - return standardize_to_milliseconds(value) - elsif value.to_s == value.to_i.to_s then value.to_i + standardize_to_milliseconds(value) + when value.to_s == value.to_i.to_s # Convert String with integer in it to Integer. - return value.to_i - elsif value.to_s == value.to_f.to_s then value.to_f - # Convert String with integer in it to Integer. - return value.to_f - elsif name.downcase.include?('date') && !value.match(/\d-/).nil? + value.to_i + when value.to_s == value.to_f.to_s + # Convert String with float in it to Float. + value.to_f + when name.downcase.include?('date') && value.match?(/\d-/) # Dates - return Time.parse(value.sub(/^UTC\s+(.*)$/, '\1 UTC')) + Time.parse(value.sub(/^UTC\s+(.*)$/, '\1 UTC')) + else + value end - - value end def self.standardize_to_milliseconds(value) From a93d05c86e72e26d8aaf7355952b9ebef27626f4 Mon Sep 17 00:00:00 2001 From: "William T. Nelson" <35801+wtn@users.noreply.github.com> Date: Thu, 23 Nov 2023 21:49:03 -0600 Subject: [PATCH 2/2] handle bad dates --- lib/mediainfo/tracks.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/mediainfo/tracks.rb b/lib/mediainfo/tracks.rb index 19b5f5b..4f08be9 100644 --- a/lib/mediainfo/tracks.rb +++ b/lib/mediainfo/tracks.rb @@ -110,7 +110,10 @@ def self.sanitize_element_value(param) value.to_f when name.downcase.include?('date') && value.match?(/\d-/) # Dates - Time.parse(value.sub(/^UTC\s+(.*)$/, '\1 UTC')) + begin + Time.parse(value.sub(/^UTC\s+(.*)$/, '\1 UTC')) + rescue ArgumentError + end else value end