class Object

Constants

DEFAULT_GENERATOR_STRING

Constants

DUPLICATE_GUID_WARNING
INVALID_URL_WARNING
MISSING_FILE_SIZE_WARNING
NO_ARTWORK_WARNING

Warning Strings

NO_CATEGORIES_WARNING
NO_DURATION_WARNING
NO_MEDIA_URL_WARNING

Public Instance Methods

detect_duplicate_guids(episodes) click to toggle source
# File lib/podcast_feed_generator.rb, line 28
def detect_duplicate_guids episodes  
  episode_guids = episodes.filter_map{|e| e["guid"] if e}
  length_before_uniq = episode_guids.length
  length_after_uniq = episode_guids.uniq.length

  id = episode_guids.group_by{|e| e}.keep_if{|_, e| e.length > 1}

  if length_after_uniq < length_before_uniq
    STDERR.puts DUPLICATE_GUID_WARNING % {
      guid: id
    } 
  end
end
url_valid?(url) click to toggle source

Helpers

# File lib/podcast_feed_generator.rb, line 24
def url_valid? url
  URI.parse(url).kind_of?(URI::HTTP)
end
verifyHasArtwork(channel_details) click to toggle source
# File lib/podcast_feed_generator.rb, line 42
def verifyHasArtwork channel_details
  STDERR.puts NO_ARTWORK_WARNING if channel_details["podcastArtworkUrl"].nil? || channel_details["podcastArtworkUrl"].empty?
end
verifyHasCategories(channel_details) click to toggle source
# File lib/podcast_feed_generator.rb, line 46
def verifyHasCategories channel_details
  if channel_details["categories"].nil? || channel_details["categories"].empty?
    STDERR.puts NO_CATEGORIES_WARNING    
  end
end
verifyHasDuration(episode) click to toggle source
# File lib/podcast_feed_generator.rb, line 52
def verifyHasDuration episode
  if  episode["duration"].nil?
    STDERR.puts NO_DURATION_WARNING % {
      episode_number: episode["episodeNumber"],
      episode_title: episode["title"]
    } 
  end
end
verifyMediaFileBytes(episode) click to toggle source
# File lib/podcast_feed_generator.rb, line 79
def verifyMediaFileBytes episode
  if  episode["mediaFileSizeBytes"].nil? || episode["mediaFileSizeBytes"].empty?
    STDERR.puts MISSING_FILE_SIZE_WARNING % {
      fileSize: episode["mediaFileSizeBytes"],
      episode_number: episode["episodeNumber"] || feed_info["episodes"].length - index,
      episode_title: episode["title"]
    } 
  end
end
verifyMediaFileUrl(episode) click to toggle source
# File lib/podcast_feed_generator.rb, line 61
def verifyMediaFileUrl episode
  if  episode["mediaFileUrl"].nil? || episode["mediaFileUrl"].empty?
    STDERR.puts NO_MEDIA_URL_WARNING % {
      url: episode["mediaFileUrl"],
      episode_number: episode["episodeNumber"],
      episode_title: episode["title"]
    } 
  else 
    unless url_valid? episode["mediaFileUrl"]
      STDERR.puts INVALID_URL_WARNING % {
        url: episode["mediaFileUrl"],
        episode_number: episode["episodeNumber"],
        episode_title: episode["title"]
      } 
    end
  end
end