class RecoverItunesRatings::Runner
Restores each rating found in the library XML to the current iTunes library.
Public Class Methods
new(library_xml_path, dry_run: true, reset_album_ratings: false)
click to toggle source
# File lib/recover_itunes_ratings/runner.rb, line 7 def initialize(library_xml_path, dry_run: true, reset_album_ratings: false) @dry_run = dry_run @reset_album_ratings = reset_album_ratings @ratings = SavedRatings.new(library_xml_path) @tracks = MatchedTracks.new(@ratings) end
Public Instance Methods
run()
click to toggle source
# File lib/recover_itunes_ratings/runner.rb, line 15 def run @tracks.each do |track, saved_rating| if @reset_album_ratings && track.album_rating_kind.get == :user name = "#{track.artist.get} - #{track.album.get}" puts "[#{track.album_rating.get/20} -> X] Album: #{name}" track.album_rating.set(-1) unless @dry_run end current_rating = track.rating.get next unless saved_rating && current_rating != saved_rating name = "#{track.artist.get} - #{track.name.get}" puts "[#{current_rating/20} -> #{saved_rating/20}] Song: #{name}" track.rating.set(saved_rating) unless @dry_run end end