Sha256: 01888a7d559f44749aeba10bb4882638183f7b3ae894817ebcef5c8d4be7728c
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
require 'addressable/uri' module ItunesApi module Music # Retrieve apple ids and albums of artists. class Artist include Request def initialize(artist_name, apple_id = nil) @artist_name = artist_name @apple_id = apple_id end def albums(limit = 3) @albums ||= filtered_results .sort_by { |result| result['releaseDate'] } .reverse .first(limit) .map { |result| album(result) } end def apple_ids @apple_ids ||= filtered_results.collect do |album| album['artistId'] end.compact.uniq.sort end private def filtered_results results.find_all do |result| result['collectionType'] == 'Album' && (!@apple_id || result['artistId'] == @apple_id) end end def album(result) Album.new( result['collectionName'], { artist_id: @apple_id, album_id: result['collectionId'] } ) end def query_values { attribute: 'artistTerm', entity: 'album', term: @artist_name }.merge(super) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
itunes_api-0.1.0 | lib/itunes_api/music/artist.rb |
itunes_api-0.0.4 | lib/itunes_api/music/artist.rb |