Class: LastfmItunes::Itunes

Inherits:
Object
  • Object
show all
Includes:
Tracks
Defined in:
lib/lastfm-itunes/itunes.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Tracks

#find, #intersection_of_tracks, #over_limit?

Constructor Details

#initialize(xml_path) ⇒ Itunes

Returns a new instance of Itunes.



8
9
10
11
12
13
# File 'lib/lastfm-itunes/itunes.rb', line 8

def initialize(xml_path)
  @xml_path = File.expand_path(xml_path)
  @library = ::ITunes::Library.load(@xml_path)
  raise InvalidLibraryException unless library.track_ids
  @tracks = @library.music.tracks.select { |t| t.location_path }
end

Instance Attribute Details

#libraryObject

Returns the value of attribute library.



6
7
8
# File 'lib/lastfm-itunes/itunes.rb', line 6

def library
  @library
end

#tracksObject

Returns the value of attribute tracks.



6
7
8
# File 'lib/lastfm-itunes/itunes.rb', line 6

def tracks
  @tracks
end

#xml_pathObject

Returns the value of attribute xml_path.



6
7
8
# File 'lib/lastfm-itunes/itunes.rb', line 6

def xml_path
  @xml_path
end

Instance Method Details

#artistsObject



20
21
22
# File 'lib/lastfm-itunes/itunes.rb', line 20

def artists
  @tracks.map(&:artist).uniq
end

#group_tracks_by_artistObject



16
17
18
# File 'lib/lastfm-itunes/itunes.rb', line 16

def group_tracks_by_artist
  old_group_tracks_by_artist(@tracks)
end

#old_group_tracks_by_artistObject



15
# File 'lib/lastfm-itunes/itunes.rb', line 15

alias :old_group_tracks_by_artist :group_tracks_by_artist