class ItunesApi::Music::Album
Wrapper for album results.
Public Class Methods
find_by_apple_id(apple_id, store)
click to toggle source
# File lib/itunes_api/music/album.rb, line 26 def find_by_apple_id(apple_id, store) albums(apple_id, store).map { |album| new(*album.attributes) } end
find_by_collection_id(collection_id, store)
click to toggle source
# File lib/itunes_api/music/album.rb, line 20 def find_by_collection_id(collection_id, store) result = albums(collection_id, store).first new(*result.attributes) if result end
Private Class Methods
albums(id, store)
click to toggle source
# File lib/itunes_api/music/album.rb, line 32 def albums(id, store) Requests::Albums.find_by_id(id, store) end
Public Instance Methods
availability()
click to toggle source
# File lib/itunes_api/music/album.rb, line 37 def availability @availability ||= build_availability end
explicit?()
click to toggle source
# File lib/itunes_api/music/album.rb, line 41 def explicit? explicitness == 'explicit' end
to_hash()
click to toggle source
# File lib/itunes_api/music/album.rb, line 45 def to_hash { artist: artist, artwork: artwork, availability: availability, collection_id: collection_id, explicit: explicit?, genre: genre, link: link, name: name, release_on: release_on, store: store, track_count: track_count } end
tracklist()
click to toggle source
# File lib/itunes_api/music/album.rb, line 61 def tracklist @tracklist ||= Song.find_by_collection_id(collection_id, store) end
Private Instance Methods
apple_music?()
click to toggle source
# File lib/itunes_api/music/album.rb, line 67 def apple_music? tracklist.any?(&:streamable?) end
build_availability()
click to toggle source
# File lib/itunes_api/music/album.rb, line 71 def build_availability prefix = pre_release? ? 'pre_release_' : '' suffix = apple_music? ? 'streaming' : 'sale' "#{prefix}#{suffix}".to_sym end
pre_release?()
click to toggle source
# File lib/itunes_api/music/album.rb, line 77 def pre_release? release_on > Date.today end