def items
      all_items = []
      @source_files.each { |src|
        item = Item.new(src)

        logger.debug("Adding new item from file #{src}")

        # set author and image_url from channel if empty
        if item.tag.artist.blank?
          logger.info("#{src} has no artist, using the channel's author")
          item.tag.artist = @attributes[:author]
        end

        if item.image_url.blank?
          logger.info("#{src} has no image URL set, using the channel's image URL")
          item.image_url = @attributes[:image_url]
        end

        # construct absolute URL, based on the channel's enclosures_url attribute
        item.url = URI.parse(enclosures_url) + item.file_path.each_filename.map { |p| url_encode(p) }.join('/')

        # Warn if keyword count is larger than recommended
        assert_keyword_count(item.keywords)

        all_items << item
      }

      all_items.sort { |x, y| y.pub_date <=> x.pub_date }
    end
def items
      all_items = []
      @source_files.each { |src|
        item = Item.new(src)

        logger.debug("Adding new item from file #{src}")

        # set author and image_url from channel if empty
        if item.tag.artist.blank?
          logger.info("#{src} has no artist, using the channel's author")
          item.tag.artist = @attributes[:author]
        end

        if item.image_url.blank?
          logger.info("#{src} has no image URL set, using the channel's image URL")
          item.image_url = @attributes[:image_url]
        end

        # construct absolute URL, based on the channel's enclosures_url attribute
        item.url = URI.parse(enclosures_url) + item.file_path.each_filename.map { |p| url_encode(p) }.join('/')

        # Warn if keyword count is larger than recommended
        assert_keyword_count(item.keywords)

        all_items << item
      }

      all_items.sort { |x, y| y.pub_date <=> x.pub_date }
    end
Returns all items (episodes) of this channel, ordered by newest-first.